summaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-06-23 10:14:26 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-06-23 10:14:26 +0000
commite88fd858a1c0d3dbac4703224dc63cb498839432 (patch)
tree8acdc60302e4cdf8a1bdc7ac79ca817373cadff5 /modules
parent307f307a8ee6de0773fdaaeb8afdaf5cd11c1f46 (diff)
modules/admin-full: display raw opkg output, the error codes are useless with recent versions
Diffstat (limited to 'modules')
-rw-r--r--modules/admin-full/luasrc/controller/admin/system.lua31
-rw-r--r--modules/admin-full/luasrc/view/admin_system/packages.htm19
2 files changed, 27 insertions, 23 deletions
diff --git a/modules/admin-full/luasrc/controller/admin/system.lua b/modules/admin-full/luasrc/controller/admin/system.lua
index 69ef6b7aa..dd78f1e8c 100644
--- a/modules/admin-full/luasrc/controller/admin/system.lua
+++ b/modules/admin-full/luasrc/controller/admin/system.lua
@@ -47,6 +47,9 @@ function action_packages()
local changes = false
local install = { }
local remove = { }
+ local stdout = { "" }
+ local stderr = { "" }
+ local out, err
-- Search query
local query = luci.http.formvalue("query")
@@ -65,19 +68,25 @@ function action_packages()
-- Do install
if ninst then
- _, install[ninst] = ipkg.install(ninst)
+ install[ninst], out, err = ipkg.install(ninst)
+ stdout[#stdout+1] = out
+ stderr[#stderr+1] = err
changes = true
end
if uinst then
- _, install[uinst] = ipkg.install(uinst)
+ install[uinst], out, err = ipkg.install(uinst)
+ stdout[#stdout+1] = out
+ stderr[#stderr+1] = err
changes = true
end
-- Remove packets
local rem = submit and luci.http.formvalue("remove")
if rem then
- _, remove[rem] = ipkg.remove(rem)
+ remove[rem], out, err = ipkg.remove(rem)
+ stdout[#stdout+1] = out
+ stderr[#stderr+1] = err
changes = true
end
@@ -85,19 +94,29 @@ function action_packages()
-- Update all packets
local update = luci.http.formvalue("update")
if update then
- _, update = ipkg.update()
+ update, out, err = ipkg.update()
+ stdout[#stdout+1] = out
+ stderr[#stderr+1] = err
end
-- Upgrade all packets
local upgrade = luci.http.formvalue("upgrade")
if upgrade then
- _, upgrade = ipkg.upgrade()
+ upgrade, out, err = ipkg.upgrade()
+ stdout[#stdout+1] = out
+ stderr[#stderr+1] = err
end
luci.template.render("admin_system/packages", {
- query=query, install=install, remove=remove, update=update, upgrade=upgrade
+ query = query,
+ install = install,
+ remove = remove,
+ update = update,
+ upgrade = upgrade,
+ stdout = table.concat(stdout, ""),
+ stderr = table.concat(stderr, "")
})
-- Remove index cache
diff --git a/modules/admin-full/luasrc/view/admin_system/packages.htm b/modules/admin-full/luasrc/view/admin_system/packages.htm
index 51c50500a..524eb4d8b 100644
--- a/modules/admin-full/luasrc/view/admin_system/packages.htm
+++ b/modules/admin-full/luasrc/view/admin_system/packages.htm
@@ -24,11 +24,6 @@ function rowstyle()
return (rowcnt % 2) + 1
end
-function opkg_error(code)
- code = bit.rshift(tonumber(code), 8)
- return translate("OPKG error code %i" % code)
-end
-
local fstat = fs.statvfs(opkg.overlay_root())
local space_total = fstat and fstat.blocks or 0
local space_free = fstat and fstat.bfree or 0
@@ -80,18 +75,8 @@ local filter = { }
<% if (install and next(install)) or (remove and next(remove)) or update or upgrade then %>
<br /><hr /><br />
- <% if update then %>
- <%:Package lists updated%>: <% if update == 0 then %><span class="ok"><%:OK%></span><% else %><span class="error"><%:Error%> (<%=opkg_error(update)%>)</span><% end %><br />
- <% end %>
- <% if upgrade then%>
- <%:Upgrade installed packages%>: <% if upgrade == 0 then %><span class="ok"><%:OK%></span><% else %><span class="error"><%:Error%> (<%=opkg_error(upgrade)%>)</span><% end %><br />
- <% end %>
- <% if install then for k,v in pairs(install) do %>
- <%:Install%> '<%=k%>': <% if v == 0 then %><span class="ok"><%:OK%></span><% else %><span class="error"><%:Error%> (<%=opkg_error(v)%>)</span><% end %><br />
- <% end end %>
- <% if remove then for k,v in pairs(remove) do %>
- <%:Remove%> '<%=k%>': <% if v == 0 then %><span class="ok"><%:OK%></span><% else %><span class="error"><%:Error%> (<%=opkg_error(v)%>)</span><% end %><br />
- <% end end %>
+ <% if #stdout > 0 then %><pre><%=pcdata(stdout)%></pre><% end %>
+ <% if #stderr > 0 then %><pre class="error"><%=pcdata(stderr)%></pre><% end %>
<% end %>
</fieldset>
<br />