* Moved exec, execl from ffluci.util to ffluci.sys
* Introduced stub for ffluci.model.ipkg
This commit is contained in:
parent
9b4e269bea
commit
1bf67dcd79
6 changed files with 63 additions and 33 deletions
|
@ -1,4 +1,6 @@
|
||||||
module("ffluci.controller.admin.uci", package.seeall)
|
module("ffluci.controller.admin.uci", package.seeall)
|
||||||
|
require("ffluci.util")
|
||||||
|
require("ffluci.sys")
|
||||||
|
|
||||||
-- This function has a higher priority than the admin_uci/apply template
|
-- This function has a higher priority than the admin_uci/apply template
|
||||||
function action_apply()
|
function action_apply()
|
||||||
|
@ -24,7 +26,7 @@ function action_apply()
|
||||||
for k, v in pairs(apply) do
|
for k, v in pairs(apply) do
|
||||||
local cmd = ffluci.config.uci_oncommit[k]
|
local cmd = ffluci.config.uci_oncommit[k]
|
||||||
if cmd then
|
if cmd then
|
||||||
output = output .. cmd .. ":" .. ffluci.util.exec(cmd)
|
output = output .. cmd .. ":" .. ffluci.sys.exec(cmd)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
-- ToDo: Translate, Add descriptions and help texts
|
-- ToDo: Translate, Add descriptions and help texts
|
||||||
require("ffluci.util")
|
|
||||||
|
|
||||||
m = Map("wireless", "Geräte")
|
m = Map("wireless", "Geräte")
|
||||||
|
|
||||||
|
@ -16,8 +15,9 @@ t:value("atheros")
|
||||||
t:value("mac80211")
|
t:value("mac80211")
|
||||||
t:value("prism2")
|
t:value("prism2")
|
||||||
--[[
|
--[[
|
||||||
|
require("ffluci.sys")
|
||||||
local c = ". /etc/functions.sh;for i in /lib/wifi/*;do . $i;done;echo $DRIVERS"
|
local c = ". /etc/functions.sh;for i in /lib/wifi/*;do . $i;done;echo $DRIVERS"
|
||||||
for driver in ffluci.util.execl(c)[1]:gmatch("[^ ]+") do
|
for driver in ffluci.sys.execl(c)[1]:gmatch("[^ ]+") do
|
||||||
t:value(driver)
|
t:value(driver)
|
||||||
end
|
end
|
||||||
]]--
|
]]--
|
||||||
|
|
29
src/ffluci/model/ipkg.lua
Normal file
29
src/ffluci/model/ipkg.lua
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
--[[
|
||||||
|
FFLuCI - IPKG wrapper library
|
||||||
|
|
||||||
|
Description:
|
||||||
|
Wrapper for the ipkg Package manager
|
||||||
|
|
||||||
|
Any return value of false or nil can be interpreted as an error
|
||||||
|
|
||||||
|
FileId:
|
||||||
|
$Id$
|
||||||
|
|
||||||
|
License:
|
||||||
|
Copyright 2008 Steven Barth <steven@midlink.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
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
]]--
|
||||||
|
module("ffluci.model.ipkg", package.seeall)
|
||||||
|
require("ffluci.sys")
|
|
@ -32,6 +32,7 @@ limitations under the License.
|
||||||
module("ffluci.model.uci", package.seeall)
|
module("ffluci.model.uci", package.seeall)
|
||||||
require("ffluci.util")
|
require("ffluci.util")
|
||||||
require("ffluci.fs")
|
require("ffluci.fs")
|
||||||
|
require("ffluci.sys")
|
||||||
|
|
||||||
-- The OS uci command
|
-- The OS uci command
|
||||||
ucicmd = "uci"
|
ucicmd = "uci"
|
||||||
|
@ -135,7 +136,7 @@ end
|
||||||
-- Internal functions --
|
-- Internal functions --
|
||||||
|
|
||||||
function Session._uci(self, cmd)
|
function Session._uci(self, cmd)
|
||||||
local res = ffluci.util.exec(self.ucicmd .. " 2>/dev/null " .. cmd)
|
local res = ffluci.sys.exec(self.ucicmd .. " 2>/dev/null " .. cmd)
|
||||||
|
|
||||||
if res:len() == 0 then
|
if res:len() == 0 then
|
||||||
return nil
|
return nil
|
||||||
|
@ -145,7 +146,7 @@ function Session._uci(self, cmd)
|
||||||
end
|
end
|
||||||
|
|
||||||
function Session._uci2(self, cmd)
|
function Session._uci2(self, cmd)
|
||||||
local res = ffluci.util.exec(self.ucicmd .. " 2>&1 " .. cmd)
|
local res = ffluci.sys.exec(self.ucicmd .. " 2>&1 " .. cmd)
|
||||||
|
|
||||||
if res:len() > 0 then
|
if res:len() > 0 then
|
||||||
return false, res
|
return false, res
|
||||||
|
@ -155,7 +156,7 @@ function Session._uci2(self, cmd)
|
||||||
end
|
end
|
||||||
|
|
||||||
function Session._uci3(self, cmd)
|
function Session._uci3(self, cmd)
|
||||||
local res = ffluci.util.execl(self.ucicmd .. " 2>&1 " .. cmd)
|
local res = ffluci.sys.execl(self.ucicmd .. " 2>&1 " .. cmd)
|
||||||
if res[1]:sub(1, ucicmd:len() + 1) == ucicmd .. ":" then
|
if res[1]:sub(1, ucicmd:len() + 1) == ucicmd .. ":" then
|
||||||
return nil, res[1]
|
return nil, res[1]
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,6 +27,31 @@ limitations under the License.
|
||||||
module("ffluci.sys", package.seeall)
|
module("ffluci.sys", package.seeall)
|
||||||
require("posix")
|
require("posix")
|
||||||
|
|
||||||
|
-- Runs "command" and returns its output
|
||||||
|
function exec(command)
|
||||||
|
local pp = io.popen(command)
|
||||||
|
local data = pp:read("*a")
|
||||||
|
pp:close()
|
||||||
|
|
||||||
|
return data
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Runs "command" and returns its output as a array of 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
|
||||||
|
|
||||||
-- Returns the hostname
|
-- Returns the hostname
|
||||||
function hostname()
|
function hostname()
|
||||||
return io.lines("/proc/sys/kernel/hostname")()
|
return io.lines("/proc/sys/kernel/hostname")()
|
||||||
|
|
|
@ -103,33 +103,6 @@ function escape(s, c)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Runs "command" and returns its output
|
|
||||||
function exec(command)
|
|
||||||
local pp = io.popen(command)
|
|
||||||
local data = pp:read("*a")
|
|
||||||
pp:close()
|
|
||||||
|
|
||||||
return data
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Runs "command" and returns its output as a array of 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
|
|
||||||
|
|
||||||
|
|
||||||
-- Populate obj in the scope of f as key
|
-- Populate obj in the scope of f as key
|
||||||
function extfenv(f, key, obj)
|
function extfenv(f, key, obj)
|
||||||
local scope = getfenv(f)
|
local scope = getfenv(f)
|
||||||
|
|
Loading…
Reference in a new issue