From 3288fe76ab3d2269abcf902d0df6f847c6200e8e Mon Sep 17 00:00:00 2001 From: Hannu Nyman Date: Wed, 16 Sep 2015 12:47:48 +0300 Subject: [PATCH] Luci opkg/packages: Show package size in list of available packages Add package *.ipk size information to package listing in Luci, as opkg was today extended to support listing also the size information. Visible fields are now: name, version, size, description That will help users considering installation of a certain package to assess its size impact on flash. Note: Opkg data includes the size of the .ipk file, not the expanded size. Signed-off-by: Hannu Nyman --- modules/luci-base/luasrc/model/ipkg.lua | 15 ++++++++------- .../luasrc/view/admin_system/packages.htm | 7 +++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/modules/luci-base/luasrc/model/ipkg.lua b/modules/luci-base/luasrc/model/ipkg.lua index 41633c43d..2ed92ca70 100644 --- a/modules/luci-base/luasrc/model/ipkg.lua +++ b/modules/luci-base/luasrc/model/ipkg.lua @@ -127,15 +127,15 @@ local function _list(action, pat, cb) (pat and (" '%s'" % pat:gsub("'", "")) or "")) if fd then - local name, version, desc + local name, version, sz, desc while true do local line = fd:read("*l") if not line then break end - name, version, desc = line:match("^(.-) %- (.-) %- (.+)") + name, version, sz, desc = line:match("^(.-) %- (.-) %- (.-) %- (.+)") if not name then - name, version = line:match("^(.-) %- (.+)") + name, version, sz = line:match("^(.-) %- (.-) %- (.+)") desc = "" end @@ -143,10 +143,11 @@ local function _list(action, pat, cb) version = version:sub(1,21) .. ".." .. version:sub(-3,-1) end - cb(name, version, desc) + cb(name, version, sz, desc) name = nil version = nil + sz = nil desc = nil end @@ -155,15 +156,15 @@ local function _list(action, pat, cb) end function list_all(pat, cb) - _list("list", pat, cb) + _list("list --size", pat, cb) end function list_installed(pat, cb) - _list("list_installed", pat, cb) + _list("list_installed --size", pat, cb) end function find(pat, cb) - _list("find", pat, cb) + _list("find --size", pat, cb) end diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm b/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm index 1ceda4785..fe2fe0436 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm @@ -132,7 +132,7 @@ end <%:Package name%> <%:Version%> - <% local empty = true; luci.model.ipkg.list_installed(querypat, function(n, v, d) empty = false; filter[n] = true %> + <% local empty = true; luci.model.ipkg.list_installed(querypat, function(n, v, s, d) empty = false; filter[n] = true %> <%:Remove%> <%=luci.util.pcdata(n)%> @@ -164,13 +164,15 @@ end   <%:Package name%> <%:Version%> + <%:Size (.ipk)%> <%:Description%> - <% local empty = true; opkg_list(querypat or letterpat, function(n, v, d) if filter[n] then return end; empty = false %> + <% local empty = true; opkg_list(querypat or letterpat, function(n, v, s, d) if filter[n] then return end; empty = false %> <%:Install%> <%=luci.util.pcdata(n)%> <%=luci.util.pcdata(v)%> + <%=luci.util.pcdata(s)%> <%=luci.util.pcdata(d)%> <% end) %> @@ -179,6 +181,7 @@ end   <%:none%> <%:none%> + <%:none%> <%:none%> <% end %> -- 2.25.1