Moved luci.sys.exec, luci.sys.execl and luci.sys.bigendian to luci.util
This commit is contained in:
parent
b1b0c085de
commit
76982655fa
13 changed files with 69 additions and 64 deletions
|
@ -10,7 +10,7 @@ end
|
|||
|
||||
function action_dispatch()
|
||||
local mac = luci.sys.net.ip4mac(luci.http.getenv("REMOTE_ADDR")) or ""
|
||||
local status = luci.sys.execl("luci-splash status "..mac)[1]
|
||||
local status = luci.util.execl("luci-splash status "..mac)[1]
|
||||
if #mac > 0 and ( status == "whitelisted" or status == "lease" ) then
|
||||
luci.http.redirect(luci.dispatcher.build_url())
|
||||
else
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/lua
|
||||
|
||||
require("luci.http")
|
||||
require("luci.sys")
|
||||
require("luci.util")
|
||||
require("luci.model.uci")
|
||||
|
||||
-- Init state session
|
||||
|
@ -140,7 +140,7 @@ end
|
|||
function listrules()
|
||||
local cmd = "iptables -t nat -L luci_splash_leases | grep RETURN |"
|
||||
cmd = cmd .. "egrep -io [0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+"
|
||||
return luci.util.split(luci.sys.exec(cmd))
|
||||
return luci.util.split(luci.util.exec(cmd))
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -167,7 +167,7 @@ function Map.parse(self, ...)
|
|||
for i, config in ipairs(self.parsechain) do
|
||||
uci.commit(config)
|
||||
if luci.config.uci_oncommit and luci.config.uci_oncommit[config] then
|
||||
luci.sys.exec(luci.config.uci_oncommit[config])
|
||||
luci.util.exec(luci.config.uci_oncommit[config])
|
||||
end
|
||||
|
||||
-- Refresh data because commit changes section names
|
||||
|
|
|
@ -31,41 +31,6 @@ require("luci.bits")
|
|||
require("luci.util")
|
||||
require("luci.fs")
|
||||
|
||||
--- Test whether the current system is operating in big endian mode.
|
||||
-- @return Boolean value indicating whether system is big endian
|
||||
function bigendian()
|
||||
return string.byte(string.dump(function() end), 7) == 0
|
||||
end
|
||||
|
||||
--- Execute given commandline and gather stdout.
|
||||
-- @param command String containing command to execute
|
||||
-- @return String containing the command's stdout
|
||||
function exec(command)
|
||||
local pp = io.popen(command)
|
||||
local data = pp:read("*a")
|
||||
pp:close()
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
--- Execute given commandline and gather stdout.
|
||||
-- @param command String containing the command to execute
|
||||
-- @return Table containing the command's stdout splitted up in lines
|
||||
function execl(command)
|
||||
local pp = io.popen(command)
|
||||
local line = ""
|
||||
local data = {}
|
||||
|
||||
while true do
|
||||
line = pp:read()
|
||||
if (line == nil) then break end
|
||||
table.insert(data, line)
|
||||
end
|
||||
pp:close()
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
--- Invoke the luci-flash executable to write an image to the flash memory.
|
||||
-- @param kpattern Pattern of files to keep over flash process
|
||||
-- @return Return value of os.execute()
|
||||
|
@ -97,10 +62,12 @@ function hostname()
|
|||
end
|
||||
|
||||
--- Returns the contents of a documented referred by an URL.
|
||||
-- @param url The URL to retrieve
|
||||
-- @param url The URL to retrieve
|
||||
-- @param stream Return a stream instead of a buffer
|
||||
-- @return String containing the contents of given the URL
|
||||
function httpget(url)
|
||||
return exec("wget -qO- '"..url:gsub("'", "").."'")
|
||||
function httpget(url, stream)
|
||||
local source = stream and io.open or luci.util.exec
|
||||
return source("wget -qO- '"..url:gsub("'", "").."'")
|
||||
end
|
||||
|
||||
--- Returns the absolute path to LuCI base directory.
|
||||
|
@ -146,21 +113,21 @@ function sysinfo()
|
|||
local c7 = "cat /proc/meminfo|grep MemFree|awk {' print $2 '} 2>/dev/null"
|
||||
local c8 = "cat /proc/meminfo|grep Buffers|awk {' print $2 '} 2>/dev/null"
|
||||
|
||||
local system = luci.util.trim(exec(c1))
|
||||
local system = luci.util.trim(luci.util.exec(c1))
|
||||
local model = ""
|
||||
local memtotal = luci.util.trim(exec(c5))
|
||||
local memcached = luci.util.trim(exec(c6))
|
||||
local memfree = luci.util.trim(exec(c7))
|
||||
local membuffers = luci.util.trim(exec(c8))
|
||||
local memtotal = luci.util.trim(luci.util.exec(c5))
|
||||
local memcached = luci.util.trim(luci.util.exec(c6))
|
||||
local memfree = luci.util.trim(luci.util.exec(c7))
|
||||
local membuffers = luci.util.trim(luci.util.exec(c8))
|
||||
local perc_memfree = math.floor((memfree/memtotal)*100)
|
||||
local perc_membuffers = math.floor((membuffers/memtotal)*100)
|
||||
local perc_memcached = math.floor((memcached/memtotal)*100)
|
||||
|
||||
if system == "" then
|
||||
system = luci.util.trim(exec(c2))
|
||||
model = luci.util.trim(exec(c3))
|
||||
system = luci.util.trim(luci.util.exec(c2))
|
||||
model = luci.util.trim(luci.util.exec(c3))
|
||||
else
|
||||
model = luci.util.trim(exec(c4))
|
||||
model = luci.util.trim(luci.util.exec(c4))
|
||||
end
|
||||
|
||||
return system, model, memtotal, memcached, membuffers, memfree, perc_memfree, perc_membuffers, perc_memcached
|
||||
|
@ -169,7 +136,7 @@ end
|
|||
--- Retrieves the output of the "logread" command.
|
||||
-- @return String containing the current log buffer
|
||||
function syslog()
|
||||
return exec("logread")
|
||||
return luci.util.exec("logread")
|
||||
end
|
||||
|
||||
--- Generates a random id with specified length.
|
||||
|
@ -305,7 +272,7 @@ function net.hexip4(hex, be)
|
|||
return nil
|
||||
end
|
||||
|
||||
be = be or bigendian()
|
||||
be = be or luci.util.bigendian()
|
||||
|
||||
local hexdec = luci.bits.Hex2Dec
|
||||
|
||||
|
@ -442,7 +409,7 @@ wifi = {}
|
|||
--- Get iwconfig output for all wireless devices.
|
||||
-- @return Table of tables containing the iwconfing output for each wifi device
|
||||
function wifi.getiwconfig()
|
||||
local cnt = exec("/usr/sbin/iwconfig 2>/dev/null")
|
||||
local cnt = luci.util.exec("/usr/sbin/iwconfig 2>/dev/null")
|
||||
local iwc = {}
|
||||
|
||||
for i, l in pairs(luci.util.split(luci.util.trim(cnt), "\n\n")) do
|
||||
|
@ -459,7 +426,7 @@ end
|
|||
--- Get iwlist scan output from all wireless devices.
|
||||
-- @return Table of tables contaiing all scan results
|
||||
function wifi.iwscan()
|
||||
local cnt = exec("iwlist scan 2>/dev/null")
|
||||
local cnt = luci.util.exec("iwlist scan 2>/dev/null")
|
||||
local iws = {}
|
||||
|
||||
for i, l in pairs(luci.util.split(luci.util.trim(cnt), "\n\n")) do
|
||||
|
|
|
@ -20,7 +20,6 @@ $Id$
|
|||
]]--
|
||||
|
||||
module("luci.sys.iptparser", package.seeall)
|
||||
require("luci.sys")
|
||||
require("luci.util")
|
||||
|
||||
|
||||
|
@ -180,7 +179,7 @@ function IptParser._parse_rules( self )
|
|||
|
||||
for i, tbl in ipairs({ "filter", "nat", "mangle" }) do
|
||||
|
||||
for i, rule in ipairs(luci.sys.execl("iptables -t " .. tbl .. " --line-numbers -nxvL")) do
|
||||
for i, rule in ipairs(luci.util.execl("iptables -t " .. tbl .. " --line-numbers -nxvL")) do
|
||||
|
||||
if rule:find( "Chain " ) == 1 then
|
||||
|
||||
|
|
|
@ -573,6 +573,45 @@ function vspairs(t)
|
|||
end
|
||||
|
||||
|
||||
--
|
||||
-- System utility functions
|
||||
--
|
||||
|
||||
--- Test whether the current system is operating in big endian mode.
|
||||
-- @return Boolean value indicating whether system is big endian
|
||||
function bigendian()
|
||||
return string.byte(string.dump(function() end), 7) == 0
|
||||
end
|
||||
|
||||
--- Execute given commandline and gather stdout.
|
||||
-- @param command String containing command to execute
|
||||
-- @return String containing the command's stdout
|
||||
function exec(command)
|
||||
local pp = io.popen(command)
|
||||
local data = pp:read("*a")
|
||||
pp:close()
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
--- Execute given commandline and gather stdout.
|
||||
-- @param command String containing the command to execute
|
||||
-- @return Table containing the command's stdout splitted up in lines
|
||||
function execl(command)
|
||||
local pp = io.popen(command)
|
||||
local line = ""
|
||||
local data = {}
|
||||
|
||||
while true do
|
||||
line = pp:read()
|
||||
if (line == nil) then break end
|
||||
table.insert(data, line)
|
||||
end
|
||||
pp:close()
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
--
|
||||
-- Coroutine safe xpcall and pcall versions modified for Luci
|
||||
-- original version:
|
||||
|
|
|
@ -26,7 +26,6 @@ limitations under the License.
|
|||
|
||||
]]--
|
||||
module("luci.model.ipkg", package.seeall)
|
||||
require("luci.sys")
|
||||
require("luci.util")
|
||||
require("luci.fs")
|
||||
|
||||
|
@ -89,7 +88,7 @@ function _lookup(act, pkg)
|
|||
cmd = cmd .. " '" .. pkg:gsub("'", "") .. "'"
|
||||
end
|
||||
|
||||
return _parselist(luci.sys.exec(cmd .. " 2>/dev/null"))
|
||||
return _parselist(luci.util.exec(cmd .. " 2>/dev/null"))
|
||||
end
|
||||
|
||||
-- Internal parser function
|
||||
|
|
|
@ -189,7 +189,7 @@ function action_backup()
|
|||
luci.ltn12.pump.all(luci.ltn12.source.file(backup_fpi), luci.http.write)
|
||||
elseif reset then
|
||||
luci.template.render("admin_system/applyreboot")
|
||||
luci.sys.exec("mtd -r erase rootfs_data")
|
||||
luci.util.exec("mtd -r erase rootfs_data")
|
||||
else
|
||||
luci.template.render("admin_system/backup", {reset_avail = reset_avail})
|
||||
end
|
||||
|
|
|
@ -77,7 +77,7 @@ function action_apply()
|
|||
|
||||
-- Search for post-commit commands
|
||||
for cmd, i in pairs(run) do
|
||||
output = output .. cmd .. ":" .. luci.sys.exec(cmd) .. "\n"
|
||||
output = output .. cmd .. ":" .. luci.util.exec(cmd) .. "\n"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ $Id$
|
|||
]]--
|
||||
require("luci.model.uci")
|
||||
require("luci.sys")
|
||||
require("luci.util")
|
||||
|
||||
m = Map("dhcp", "DHCP")
|
||||
|
||||
|
@ -46,7 +47,7 @@ s:option(Value, "netmask", translate("netmask")).optional = true
|
|||
|
||||
s:option(Flag, "force").optional = true
|
||||
|
||||
for i, line in pairs(luci.sys.execl("dnsmasq --help dhcp")) do
|
||||
for i, line in pairs(luci.util.execl("dnsmasq --help dhcp")) do
|
||||
k, v = line:match("([^ ]+) +([^ ]+)")
|
||||
s:option(Value, "dhcp"..k, v).optional = true
|
||||
end
|
||||
|
|
|
@ -33,7 +33,7 @@ t:value("prism2")
|
|||
--[[
|
||||
require("luci.sys")
|
||||
local c = ". /etc/functions.sh;for i in /lib/wifi/*;do . $i;done;echo $DRIVERS"
|
||||
for driver in luci.sys.execl(c)[1]:gmatch("[^ ]+") do
|
||||
for driver in luci.util.execl(c)[1]:gmatch("[^ ]+") do
|
||||
t:value(driver)
|
||||
end
|
||||
]]--
|
||||
|
|
|
@ -62,7 +62,7 @@ function action_backup()
|
|||
luci.ltn12.pump.all(luci.ltn12.source.file(backup_fpi), luci.http.write)
|
||||
elseif reset then
|
||||
luci.template.render("mini/applyreboot")
|
||||
luci.sys.exec("mtd -r erase rootfs_data")
|
||||
luci.util.exec("mtd -r erase rootfs_data")
|
||||
else
|
||||
luci.template.render("mini/backup", {reset_avail = reset_avail})
|
||||
end
|
||||
|
|
|
@ -74,7 +74,7 @@ function action_apply()
|
|||
|
||||
-- Search for post-commit commands
|
||||
for cmd, i in pairs(run) do
|
||||
output = output .. cmd .. ":" .. luci.sys.exec(cmd) .. "\n"
|
||||
output = output .. cmd .. ":" .. luci.util.exec(cmd) .. "\n"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue