diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2009-02-17 01:37:18 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2009-02-17 01:37:18 +0000 |
commit | e062ec6981cc6a351b2a79676bdfc9054db44655 (patch) | |
tree | 52b8b056fcf04c1fefe87e6d2b6be6a78c763415 | |
parent | cb0e1804484cc3debd5e6ea8b7e2344ac7b9bd47 (diff) |
libs/ipkg: use -force-defaults to ensure non-interactive execution
-rw-r--r-- | libs/ipkg/luasrc/model/ipkg.lua | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/libs/ipkg/luasrc/model/ipkg.lua b/libs/ipkg/luasrc/model/ipkg.lua index 3df4bf945..a04f0a442 100644 --- a/libs/ipkg/luasrc/model/ipkg.lua +++ b/libs/ipkg/luasrc/model/ipkg.lua @@ -21,7 +21,7 @@ local type = type local pairs = pairs local error = error -local ipkg = "opkg" +local ipkg = "opkg -force-defaults" --- LuCI IPKG/OPKG call abstraction library module "luci.model.ipkg" @@ -34,26 +34,26 @@ local function _action(cmd, ...) for k, v in pairs(arg) do pkg = pkg .. " '" .. v:gsub("'", "") .. "'" end - + local c = ipkg.." "..cmd.." "..pkg.." >/dev/null 2>&1" local r = os.execute(c) - return (r == 0), r + return (r == 0), r end -- Internal parser function -local function _parselist(rawdata) +local function _parselist(rawdata) if type(rawdata) ~= "function" then error("IPKG: Invalid rawdata given") end - + local data = {} local c = {} local l = nil - + for line in rawdata do if line:sub(1, 1) ~= " " then local key, val = line:match("(.-): ?(.*)%s*") - + if key and val then if key == "Package" then c = {Package = val} @@ -73,7 +73,7 @@ local function _parselist(rawdata) c[l] = c[l] .. "\n" .. line end end - + return data end @@ -83,7 +83,7 @@ local function _lookup(act, pkg) if pkg then cmd = cmd .. " '" .. pkg:gsub("'", "") .. "'" end - + -- IPKG sometimes kills the whole machine because it sucks -- Therefore we have to use a sucky approach too and use -- tmpfiles instead of directly reading the output @@ -147,4 +147,3 @@ end function upgrade() return _action("upgrade") end - |