summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2009-02-17 01:37:18 +0000
committerJo-Philipp Wich <jow@openwrt.org>2009-02-17 01:37:18 +0000
commite062ec6981cc6a351b2a79676bdfc9054db44655 (patch)
tree52b8b056fcf04c1fefe87e6d2b6be6a78c763415
parentcb0e1804484cc3debd5e6ea8b7e2344ac7b9bd47 (diff)
libs/ipkg: use -force-defaults to ensure non-interactive execution
-rw-r--r--libs/ipkg/luasrc/model/ipkg.lua19
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
-