summaryrefslogtreecommitdiffhomepage
path: root/modules/base/luasrc/tools
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2014-12-03 15:17:05 +0100
committerJo-Philipp Wich <jow@openwrt.org>2015-01-08 16:26:20 +0100
commit1bb4822dca6113f73e3bc89e2acf15935e6f8e92 (patch)
tree35e16f100466e4e00657199b38bb3d87d52bf73f /modules/base/luasrc/tools
parent9edd0e46c3f880727738ce8ca6ff1c8b85f99ef4 (diff)
Rework LuCI build system
* Rename subdirectories to their repective OpenWrt package names * Make each LuCI module its own standalone package * Deploy a shared luci.mk which is used by each module Makefile Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'modules/base/luasrc/tools')
-rw-r--r--modules/base/luasrc/tools/proto.lua46
-rw-r--r--modules/base/luasrc/tools/status.lua218
-rw-r--r--modules/base/luasrc/tools/webadmin.lua173
3 files changed, 0 insertions, 437 deletions
diff --git a/modules/base/luasrc/tools/proto.lua b/modules/base/luasrc/tools/proto.lua
deleted file mode 100644
index 4df02696b0..0000000000
--- a/modules/base/luasrc/tools/proto.lua
+++ /dev/null
@@ -1,46 +0,0 @@
---[[
-LuCI - Lua Configuration Interface
-
-Copyright 2012 Jo-Philipp Wich <xm@subsignal.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-]]--
-
-module("luci.tools.proto", package.seeall)
-
-function opt_macaddr(s, ifc, ...)
- local v = luci.cbi.Value
- local o = s:taboption("advanced", v, "macaddr", ...)
-
- o.placeholder = ifc and ifc:mac()
- o.datatype = "macaddr"
-
- function o.cfgvalue(self, section)
- local w = ifc and ifc:get_wifinet()
- if w then
- return w:get("macaddr")
- else
- return v.cfgvalue(self, section)
- end
- end
-
- function o.write(self, section, value)
- local w = ifc and ifc:get_wifinet()
- if w then
- w:set("macaddr", value)
- elseif value then
- v.write(self, section, value)
- else
- v.remove(self, section)
- end
- end
-
- function o.remove(self, section)
- self:write(section, nil)
- end
-end
diff --git a/modules/base/luasrc/tools/status.lua b/modules/base/luasrc/tools/status.lua
deleted file mode 100644
index 0efc51be23..0000000000
--- a/modules/base/luasrc/tools/status.lua
+++ /dev/null
@@ -1,218 +0,0 @@
---[[
-LuCI - Lua Configuration Interface
-
-Copyright 2011 Jo-Philipp Wich <xm@subsignal.org>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-]]--
-
-module("luci.tools.status", package.seeall)
-
-local uci = require "luci.model.uci".cursor()
-
-local function dhcp_leases_common(family)
- local rv = { }
- local nfs = require "nixio.fs"
- local leasefile = "/var/dhcp.leases"
-
- uci:foreach("dhcp", "dnsmasq",
- function(s)
- if s.leasefile and nfs.access(s.leasefile) then
- leasefile = s.leasefile
- return false
- end
- end)
-
- local fd = io.open(leasefile, "r")
- if fd then
- while true do
- local ln = fd:read("*l")
- if not ln then
- break
- else
- local ts, mac, ip, name, duid = ln:match("^(%d+) (%S+) (%S+) (%S+) (%S+)")
- if ts and mac and ip and name and duid then
- if family == 4 and not ip:match(":") then
- rv[#rv+1] = {
- expires = os.difftime(tonumber(ts) or 0, os.time()),
- macaddr = mac,
- ipaddr = ip,
- hostname = (name ~= "*") and name
- }
- elseif family == 6 and ip:match(":") then
- rv[#rv+1] = {
- expires = os.difftime(tonumber(ts) or 0, os.time()),
- ip6addr = ip,
- duid = (duid ~= "*") and duid,
- hostname = (name ~= "*") and name
- }
- end
- end
- end
- end
- fd:close()
- end
-
- local fd = io.open("/tmp/hosts/odhcpd", "r")
- if fd then
- while true do
- local ln = fd:read("*l")
- if not ln then
- break
- else
- local iface, duid, iaid, name, ts, id, length, ip = ln:match("^# (%S+) (%S+) (%S+) (%S+) (%d+) (%S+) (%S+) (.*)")
- if ip and iaid ~= "ipv4" and family == 6 then
- rv[#rv+1] = {
- expires = os.difftime(tonumber(ts) or 0, os.time()),
- duid = duid,
- ip6addr = ip,
- hostname = (name ~= "-") and name
- }
- elseif ip and iaid == "ipv4" and family == 4 then
- rv[#rv+1] = {
- expires = os.difftime(tonumber(ts) or 0, os.time()),
- macaddr = duid,
- ipaddr = ip,
- hostname = (name ~= "-") and name
- }
- end
- end
- end
- fd:close()
- end
-
- return rv
-end
-
-function dhcp_leases()
- return dhcp_leases_common(4)
-end
-
-function dhcp6_leases()
- return dhcp_leases_common(6)
-end
-
-function wifi_networks()
- local rv = { }
- local ntm = require "luci.model.network".init()
-
- local dev
- for _, dev in ipairs(ntm:get_wifidevs()) do
- local rd = {
- up = dev:is_up(),
- device = dev:name(),
- name = dev:get_i18n(),
- networks = { }
- }
-
- local net
- for _, net in ipairs(dev:get_wifinets()) do
- rd.networks[#rd.networks+1] = {
- name = net:shortname(),
- link = net:adminlink(),
- up = net:is_up(),
- mode = net:active_mode(),
- ssid = net:active_ssid(),
- bssid = net:active_bssid(),
- encryption = net:active_encryption(),
- frequency = net:frequency(),
- channel = net:channel(),
- signal = net:signal(),
- quality = net:signal_percent(),
- noise = net:noise(),
- bitrate = net:bitrate(),
- ifname = net:ifname(),
- assoclist = net:assoclist(),
- country = net:country(),
- txpower = net:txpower(),
- txpoweroff = net:txpower_offset()
- }
- end
-
- rv[#rv+1] = rd
- end
-
- return rv
-end
-
-function wifi_network(id)
- local ntm = require "luci.model.network".init()
- local net = ntm:get_wifinet(id)
- if net then
- local dev = net:get_device()
- if dev then
- return {
- id = id,
- name = net:shortname(),
- link = net:adminlink(),
- up = net:is_up(),
- mode = net:active_mode(),
- ssid = net:active_ssid(),
- bssid = net:active_bssid(),
- encryption = net:active_encryption(),
- frequency = net:frequency(),
- channel = net:channel(),
- signal = net:signal(),
- quality = net:signal_percent(),
- noise = net:noise(),
- bitrate = net:bitrate(),
- ifname = net:ifname(),
- assoclist = net:assoclist(),
- country = net:country(),
- txpower = net:txpower(),
- txpoweroff = net:txpower_offset(),
- disabled = (dev:get("disabled") == "1" or
- net:get("disabled") == "1"),
- device = {
- up = dev:is_up(),
- device = dev:name(),
- name = dev:get_i18n()
- }
- }
- end
- end
- return { }
-end
-
-function switch_status(devs)
- local dev
- local switches = { }
- for dev in devs:gmatch("[^%s,]+") do
- local ports = { }
- local swc = io.popen("swconfig dev %q show" % dev, "r")
- if swc then
- local l
- repeat
- l = swc:read("*l")
- if l then
- local port, up = l:match("port:(%d+) link:(%w+)")
- if port then
- local speed = l:match(" speed:(%d+)")
- local duplex = l:match(" (%w+)-duplex")
- local txflow = l:match(" (txflow)")
- local rxflow = l:match(" (rxflow)")
- local auto = l:match(" (auto)")
-
- ports[#ports+1] = {
- port = tonumber(port) or 0,
- speed = tonumber(speed) or 0,
- link = (up == "up"),
- duplex = (duplex == "full"),
- rxflow = (not not rxflow),
- txflow = (not not txflow),
- auto = (not not auto)
- }
- end
- end
- until not l
- swc:close()
- end
- switches[dev] = ports
- end
- return switches
-end
diff --git a/modules/base/luasrc/tools/webadmin.lua b/modules/base/luasrc/tools/webadmin.lua
deleted file mode 100644
index 0e09be9800..0000000000
--- a/modules/base/luasrc/tools/webadmin.lua
+++ /dev/null
@@ -1,173 +0,0 @@
---[[
-LuCI - Lua Configuration Interface
-
-Copyright 2008 Steven Barth <steven@midlink.org>
-Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-
-module("luci.tools.webadmin", package.seeall)
-local uci = require("luci.model.uci")
-require("luci.sys")
-require("luci.ip")
-
-function byte_format(byte)
- local suff = {"B", "KB", "MB", "GB", "TB"}
- for i=1, 5 do
- if byte > 1024 and i < 5 then
- byte = byte / 1024
- else
- return string.format("%.2f %s", byte, suff[i])
- end
- end
-end
-
-function date_format(secs)
- local suff = {"min", "h", "d"}
- local mins = 0
- local hour = 0
- local days = 0
-
- secs = math.floor(secs)
- if secs > 60 then
- mins = math.floor(secs / 60)
- secs = secs % 60
- end
-
- if mins > 60 then
- hour = math.floor(mins / 60)
- mins = mins % 60
- end
-
- if hour > 24 then
- days = math.floor(hour / 24)
- hour = hour % 24
- end
-
- if days > 0 then
- return string.format("%.0fd %02.0fh %02.0fmin %02.0fs", days, hour, mins, secs)
- else
- return string.format("%02.0fh %02.0fmin %02.0fs", hour, mins, secs)
- end
-end
-
-function network_get_addresses(net)
- local state = uci.cursor_state()
- state:load("network")
- local addr = {}
- local ipv4 = state:get("network", net, "ipaddr")
- local mav4 = state:get("network", net, "netmask")
- local ipv6 = state:get("network", net, "ip6addr")
-
- if ipv4 and #ipv4 > 0 then
- if mav4 and #mav4 == 0 then mav4 = nil end
-
- ipv4 = luci.ip.IPv4(ipv4, mav4)
-
- if ipv4 then
- table.insert(addr, ipv4:string())
- end
- end
-
- if ipv6 then
- table.insert(addr, ipv6)
- end
-
- state:foreach("network", "alias",
- function (section)
- if section.interface == net then
- if section.ipaddr and section.netmask then
- local ipv4 = luci.ip.IPv4(section.ipaddr, section.netmask)
-
- if ipv4 then
- table.insert(addr, ipv4:string())
- end
- end
-
- if section.ip6addr then
- table.insert(addr, section.ip6addr)
- end
- end
- end
- )
-
- return addr
-end
-
-function cbi_add_networks(field)
- uci.cursor():foreach("network", "interface",
- function (section)
- if section[".name"] ~= "loopback" then
- field:value(section[".name"])
- end
- end
- )
- field.titleref = luci.dispatcher.build_url("admin", "network", "network")
-end
-
-function cbi_add_knownips(field)
- for i, dataset in ipairs(luci.sys.net.arptable()) do
- field:value(dataset["IP address"])
- end
-end
-
-function network_get_zones(net)
- local state = uci.cursor_state()
- if not state:load("firewall") then
- return nil
- end
-
- local zones = {}
-
- state:foreach("firewall", "zone",
- function (section)
- local znet = section.network or section.name
- if luci.util.contains(luci.util.split(znet, " "), net) then
- table.insert(zones, section.name)
- end
- end
- )
-
- return zones
-end
-
-function firewall_find_zone(name)
- local find
-
- luci.model.uci.cursor():foreach("firewall", "zone",
- function (section)
- if section.name == name then
- find = section[".name"]
- end
- end
- )
-
- return find
-end
-
-function iface_get_network(iface)
- local state = uci.cursor_state()
- state:load("network")
- local net
-
- state:foreach("network", "interface",
- function (section)
- local ifname = state:get(
- "network", section[".name"], "ifname"
- )
-
- if iface == ifname then
- net = section[".name"]
- end
- end
- )
-
- return net
-end