From 1c296f6f951c4451bad807de2ade2c960c8561ee Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sun, 10 Nov 2019 18:33:49 +0100 Subject: [PATCH] luci-app-opkg: support nonstandard list locations Fixes: #3287 Signed-off-by: Jo-Philipp Wich (cherry picked from commit 948c1fe6023a37e72ab2db1d5b1ad7f4436add3e) --- .../luci-app-opkg/luasrc/controller/opkg.lua | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/applications/luci-app-opkg/luasrc/controller/opkg.lua b/applications/luci-app-opkg/luasrc/controller/opkg.lua index 39c5d1fb8..29c9a0864 100644 --- a/applications/luci-app-opkg/luasrc/controller/opkg.lua +++ b/applications/luci-app-opkg/luasrc/controller/opkg.lua @@ -12,12 +12,25 @@ function index() end function action_list(mode) + local util = require "luci.util" local cmd if mode == "installed" then cmd = { "/bin/cat", "/usr/lib/opkg/status" } else - cmd = { "/bin/sh", "-c", [[find /tmp/opkg-lists/ -type f '!' -name '*.sig' | xargs -r gzip -cd]] } + local lists_dir = nil + + local fd = io.popen([[sed -rne 's#^lists_dir \S+ (\S+)#\1#p' /etc/opkg.conf /etc/opkg/*.conf 2>/dev/null]], "r") + if fd then + lists_dir = fd:read("*l") + fd:close() + end + + if not lists_dir or #lists_dir == "" then + lists_dir = "/tmp/opkg-lists" + end + + cmd = { "/bin/sh", "-c", [[find %s -type f '!' -name '*.sig' | xargs -r gzip -cd]] % util.shellquote(lists_dir) } end luci.http.prepare_content("text/plain; charset=utf-8") -- 2.25.1