* Updated INSTALL file
This commit is contained in:
parent
2f99795df6
commit
f2fc9438a2
3 changed files with 94 additions and 4 deletions
4
INSTALL
4
INSTALL
|
@ -35,8 +35,8 @@ TOC:
|
||||||
Prerequisites:
|
Prerequisites:
|
||||||
CGI enabled webserver
|
CGI enabled webserver
|
||||||
Lua 5.1.x or later
|
Lua 5.1.x or later
|
||||||
LuaFileSystem Lua extension
|
Luaposix Lua extension
|
||||||
Haserl 0.9x or later with Lua support builtin
|
Haserl 0.9.23 or later with Lua support builtin
|
||||||
|
|
||||||
Installation:
|
Installation:
|
||||||
Use make to build a distribution of FFLuCI
|
Use make to build a distribution of FFLuCI
|
||||||
|
|
|
@ -27,3 +27,84 @@ limitations under the License.
|
||||||
]]--
|
]]--
|
||||||
module("ffluci.model.ipkg", package.seeall)
|
module("ffluci.model.ipkg", package.seeall)
|
||||||
require("ffluci.sys")
|
require("ffluci.sys")
|
||||||
|
require("ffluci.util")
|
||||||
|
|
||||||
|
ipkg = "ipkg"
|
||||||
|
local statuslist = nil
|
||||||
|
|
||||||
|
-- Returns repository information
|
||||||
|
function info(pkg)
|
||||||
|
-- To be implemented
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Returns a table with status information
|
||||||
|
function status(refresh)
|
||||||
|
if not statuslist or refresh then
|
||||||
|
statuslist = _parselist(ffluci.sys.exec(ipkg .. " status"))
|
||||||
|
end
|
||||||
|
|
||||||
|
return statuslist
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Installs a package
|
||||||
|
function install(pkg)
|
||||||
|
if not pkg then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local c = ipkg .. " install '" .. pkg:gsub("'", "") .. "' >/dev/null 2>&1"
|
||||||
|
local r = os.execute(c)
|
||||||
|
return (r == 0), r
|
||||||
|
end
|
||||||
|
|
||||||
|
function installed(pkg, ...)
|
||||||
|
local p = status(...)[pkg]
|
||||||
|
return (p and p.Status and p.Status.installed)
|
||||||
|
end
|
||||||
|
|
||||||
|
function _parselist(rawdata)
|
||||||
|
if type(rawdata) ~= "string" then
|
||||||
|
error("IPKG: Invalid rawdata given")
|
||||||
|
end
|
||||||
|
|
||||||
|
rawdata = ffluci.util.split(rawdata)
|
||||||
|
local data = {}
|
||||||
|
local c = {}
|
||||||
|
local l = nil
|
||||||
|
|
||||||
|
for k, line in pairs(rawdata) do
|
||||||
|
if line:sub(1, 1) ~= " " then
|
||||||
|
local split = ffluci.util.split(line, ":", 1)
|
||||||
|
local key = nil
|
||||||
|
local val = nil
|
||||||
|
|
||||||
|
if split[1] then
|
||||||
|
key = ffluci.util.trim(split[1])
|
||||||
|
end
|
||||||
|
|
||||||
|
if split[2] then
|
||||||
|
val = ffluci.util.trim(split[2])
|
||||||
|
end
|
||||||
|
|
||||||
|
if key and val then
|
||||||
|
if key == "Package" then
|
||||||
|
c = {Package = val}
|
||||||
|
data[val] = c
|
||||||
|
elseif key == "Status" then
|
||||||
|
c.Status = {}
|
||||||
|
for i, j in pairs(ffluci.util.split(val, " ")) do
|
||||||
|
c.Status[j] = true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
c[key] = val
|
||||||
|
end
|
||||||
|
l = key
|
||||||
|
end
|
||||||
|
else
|
||||||
|
-- Multi-line field
|
||||||
|
c[l] = c[l] .. "\n" .. line:sub(2)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return data
|
||||||
|
end
|
|
@ -145,9 +145,10 @@ function sessionid()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Splits a string into an array (Taken from lua-users.org)
|
-- Splits a string into an array (Adapted from lua-users.org)
|
||||||
function split(str, pat)
|
function split(str, pat, max)
|
||||||
pat = pat or "\n"
|
pat = pat or "\n"
|
||||||
|
max = max or -1
|
||||||
|
|
||||||
local t = {}
|
local t = {}
|
||||||
local fpat = "(.-)" .. pat
|
local fpat = "(.-)" .. pat
|
||||||
|
@ -155,10 +156,14 @@ function split(str, pat)
|
||||||
local s, e, cap = str:find(fpat, 1)
|
local s, e, cap = str:find(fpat, 1)
|
||||||
|
|
||||||
while s do
|
while s do
|
||||||
|
max = max - 1
|
||||||
if s ~= 1 or cap ~= "" then
|
if s ~= 1 or cap ~= "" then
|
||||||
table.insert(t,cap)
|
table.insert(t,cap)
|
||||||
end
|
end
|
||||||
last_end = e+1
|
last_end = e+1
|
||||||
|
if max == 0 then
|
||||||
|
break
|
||||||
|
end
|
||||||
s, e, cap = str:find(fpat, last_end)
|
s, e, cap = str:find(fpat, last_end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -170,6 +175,10 @@ function split(str, pat)
|
||||||
return t
|
return t
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Removes whitespace from beginning and end of a string
|
||||||
|
function trim (string)
|
||||||
|
return string:gsub("^%s*(.-)%s*$", "%1")
|
||||||
|
end
|
||||||
|
|
||||||
-- Updates given table with new values
|
-- Updates given table with new values
|
||||||
function update(t, updates)
|
function update(t, updates)
|
||||||
|
|
Loading…
Reference in a new issue