-- Copyright (C) 2021-2022 sirpdboy https://github.com/sirpdboy/luci-app-lucky -- Licensed to the public under the Apache License 2.0. local SYS = require "luci.sys" module("luci.controller.lucky", package.seeall) function index() local e=entry({"admin", "services", "lucky"}, alias("admin", "services", "lucky", "setting"),_("Lucky"), 57) e.dependent=false e.acl_depends={ "luci-app-lucky" } entry({"admin", "services", "lucky", "setting"}, cbi("lucky"), _("Base Setting"), 20).leaf=true entry({"admin", "services", "lucky", "lucky"}, template("lucky"), _("Lucky Control panel"), 30).leaf = true entry({"admin", "services", "lucky_status"}, call("lucky_status")) entry({"admin", "services", "lucky_config"}, call("lucky_config")) end function lucky_config() local e = { } local luckyInfo = SYS.exec("/usr/bin/lucky -info") if (luckyInfo~=nil) then local configObj = ConfigureObj() if (configObj~=nil) then e.BaseConfigure = configObj["BaseConfigure"] end end e.luckyArch = SYS.exec("/usr/bin/luckyarch") luci.http.prepare_content("application/json") luci.http.write_json(e) end function lucky_status() local e = { } e.status = SYS.call("pgrep -f 'lucky -c' >/dev/null") == 0 luci.http.prepare_content("application/json") luci.http.write_json(e) end function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end function ConfigureObj() configPath = trim(luci.sys.exec("uci get lucky.@lucky[0].configdir")) local configContent = luci.sys.exec("lucky -baseConfInfo -cd "..configPath) configObj = luci.jsonc.parse(trim(configContent)) return configObj end