diff options
-rw-r--r-- | modules/admin-full/luasrc/controller/admin/system.lua | 31 | ||||
-rw-r--r-- | modules/admin-full/luasrc/view/admin_system/packages.htm | 19 |
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 /> |