summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--applications/luci-splash/luasrc/controller/splash/splash.lua2
-rwxr-xr-xapplications/luci-splash/root/usr/sbin/luci-splash4
-rw-r--r--libs/cbi/luasrc/cbi.lua2
-rw-r--r--libs/core/luasrc/sys.lua67
-rw-r--r--libs/core/luasrc/sys/iptparser.lua3
-rw-r--r--libs/core/luasrc/util.lua39
-rw-r--r--libs/ipkg/luasrc/model/ipkg.lua3
-rw-r--r--modules/admin-full/luasrc/controller/admin/system.lua2
-rw-r--r--modules/admin-full/luasrc/controller/admin/uci.lua2
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua3
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_wifi/devices.lua2
-rw-r--r--modules/admin-mini/luasrc/controller/mini/system.lua2
-rw-r--r--modules/admin-mini/luasrc/controller/mini/uci.lua2
13 files changed, 69 insertions, 64 deletions
diff --git a/applications/luci-splash/luasrc/controller/splash/splash.lua b/applications/luci-splash/luasrc/controller/splash/splash.lua
index 7dbf488a4..dbd266f46 100644
--- a/applications/luci-splash/luasrc/controller/splash/splash.lua
+++ b/applications/luci-splash/luasrc/controller/splash/splash.lua
@@ -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
diff --git a/applications/luci-splash/root/usr/sbin/luci-splash b/applications/luci-splash/root/usr/sbin/luci-splash
index 72456c01e..0b645fab7 100755
--- a/applications/luci-splash/root/usr/sbin/luci-splash
+++ b/applications/luci-splash/root/usr/sbin/luci-splash
@@ -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
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua
index 8c8f68b24..d5be48edb 100644
--- a/libs/cbi/luasrc/cbi.lua
+++ b/libs/cbi/luasrc/cbi.lua
@@ -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
diff --git a/libs/core/luasrc/sys.lua b/libs/core/luasrc/sys.lua
index 8e8aab731..c291f6789 100644
--- a/libs/core/luasrc/sys.lua
+++ b/libs/core/luasrc/sys.lua
@@ -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
diff --git a/libs/core/luasrc/sys/iptparser.lua b/libs/core/luasrc/sys/iptparser.lua
index 6450c3072..2e8085a55 100644
--- a/libs/core/luasrc/sys/iptparser.lua
+++ b/libs/core/luasrc/sys/iptparser.lua
@@ -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
diff --git a/libs/core/luasrc/util.lua b/libs/core/luasrc/util.lua
index a4ea2d29f..2f6cfad4c 100644
--- a/libs/core/luasrc/util.lua
+++ b/libs/core/luasrc/util.lua
@@ -574,6 +574,45 @@ 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:
-- coxpcall 1.13 - Copyright 2005 - Kepler Project (www.keplerproject.org)
diff --git a/libs/ipkg/luasrc/model/ipkg.lua b/libs/ipkg/luasrc/model/ipkg.lua
index 075acc4c3..4c2716a38 100644
--- a/libs/ipkg/luasrc/model/ipkg.lua
+++ b/libs/ipkg/luasrc/model/ipkg.lua
@@ -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
diff --git a/modules/admin-full/luasrc/controller/admin/system.lua b/modules/admin-full/luasrc/controller/admin/system.lua
index 8e3a3d799..9abdb2aba 100644
--- a/modules/admin-full/luasrc/controller/admin/system.lua
+++ b/modules/admin-full/luasrc/controller/admin/system.lua
@@ -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
diff --git a/modules/admin-full/luasrc/controller/admin/uci.lua b/modules/admin-full/luasrc/controller/admin/uci.lua
index d2acdeca1..215889f85 100644
--- a/modules/admin-full/luasrc/controller/admin/uci.lua
+++ b/modules/admin-full/luasrc/controller/admin/uci.lua
@@ -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
diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua b/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua
index 20adcdf10..f85eb5219 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua
@@ -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
diff --git a/modules/admin-full/luasrc/model/cbi/admin_wifi/devices.lua b/modules/admin-full/luasrc/model/cbi/admin_wifi/devices.lua
index d463157d1..de2261919 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_wifi/devices.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_wifi/devices.lua
@@ -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
]]--
diff --git a/modules/admin-mini/luasrc/controller/mini/system.lua b/modules/admin-mini/luasrc/controller/mini/system.lua
index ef1489b9b..0df4f8cc4 100644
--- a/modules/admin-mini/luasrc/controller/mini/system.lua
+++ b/modules/admin-mini/luasrc/controller/mini/system.lua
@@ -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
diff --git a/modules/admin-mini/luasrc/controller/mini/uci.lua b/modules/admin-mini/luasrc/controller/mini/uci.lua
index b56a70287..4eceae629 100644
--- a/modules/admin-mini/luasrc/controller/mini/uci.lua
+++ b/modules/admin-mini/luasrc/controller/mini/uci.lua
@@ -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