local changes = false
local install = { }
local remove = { }
+ local stdout = { "" }
+ local stderr = { "" }
+ local out, err
-- Search query
local query = luci.http.formvalue("query")
-- 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
-- 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
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
<% 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 />