mirror of
https://github.com/openwrt/luci.git
synced 2026-06-18 16:52:12 +04:00
luci-app-ddns: get rid of luci-lib-ipkg depdency
Invoking opkg to obtain the installed package version is very slow and resource intensive, parse the related control file directly to avoid the extraneous dependency and resource consumption. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
@@ -12,7 +12,7 @@ PKG_LICENSE:=Apache-2.0
|
||||
PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
|
||||
|
||||
LUCI_TITLE:=LuCI Support for Dynamic DNS Client (ddns-scripts)
|
||||
LUCI_DEPENDS:=+luci-lib-ipkg +luci-mod-admin-full +ddns-scripts
|
||||
LUCI_DEPENDS:=+luci-mod-admin-full +ddns-scripts
|
||||
LUCI_PKGARCH:=all
|
||||
|
||||
include ../../luci.mk
|
||||
|
||||
@@ -153,21 +153,26 @@ local methods = {
|
||||
},
|
||||
get_ddns_state = {
|
||||
call = function()
|
||||
local ipkg = require "luci.model.ipkg"
|
||||
local uci = UCI.cursor()
|
||||
local dateformat = uci:get("ddns", "global", "ddns_dateformat") or "%F %R"
|
||||
local services_mtime = fs.stat(ddns_package_path .. "/list", 'mtime')
|
||||
uci:unload("ddns")
|
||||
local ver, srv_ver_cmd
|
||||
local res = {}
|
||||
local ver
|
||||
|
||||
if ipkg then
|
||||
ver = ipkg.info(srv_name)[srv_name].Version
|
||||
else
|
||||
srv_ver_cmd = luci_helper .. " -V | awk {'print $2'} "
|
||||
ver = util.exec(srv_ver_cmd)
|
||||
local _, ctrl = pcall(io.lines, "/usr/lib/opkg/info/%s.control" % srv_name)
|
||||
if ctrl then
|
||||
for line in ctrl do
|
||||
ver = line:match("^Version: (.+)$")
|
||||
|
||||
if ver then
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ver = ver or util.trim(util.exec("%s -V | awk {'print $2'}" % luci_helper))
|
||||
|
||||
res['_version'] = ver and #ver > 0 and ver or nil
|
||||
res['_enabled'] = sys.init.enabled("ddns")
|
||||
res['_curr_dateformat'] = os.date(dateformat)
|
||||
|
||||
Reference in New Issue
Block a user