mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-31 00:25:13 +08:00
🌴 Sync 2026-03-05 23:51:42
This commit is contained in:
1 parent
97c049ed0a
commit
0acff03804
14253 files changed
+3893239
No files matched your search
@@ -0,0 +1,91 @@
|
||||
module("luci.controller.caddy", package.seeall)
|
||||
|
||||
function index()
|
||||
entry({"admin", "nas"}, firstchild(), _("NAS") , 45).dependent = false
|
||||
if not nixio.fs.access("/etc/config/caddy") then
|
||||
return
|
||||
end
|
||||
|
||||
local page = entry({"admin", "nas", "caddy"}, alias("admin", "nas", "caddy", "basic"), _("Caddy"), 20)
|
||||
page.dependent = true
|
||||
page.acl_depends = { "luci-app-caddy" }
|
||||
|
||||
entry({"admin", "nas"}, firstchild(), "NAS", 44).dependent = false
|
||||
entry({"admin", "nas", "caddy", "basic"}, cbi("caddy/caddy"), _("基本设置"), 1).leaf = true
|
||||
entry({"admin", "nas", "caddy", "log"}, cbi("caddy/caddy_log"), _("日志"), 2).leaf = true
|
||||
entry({"admin", "nas", "caddy", "caddy_status"}, call("caddy_status")).leaf = true
|
||||
entry({"admin", "nas", "caddy", "get_log"}, call("get_log")).leaf = true
|
||||
entry({"admin", "nas", "caddy", "clear_log"}, call("clear_log")).leaf = true
|
||||
entry({"admin", "nas", "caddy", "admin_info"}, call("admin_info")).leaf = true
|
||||
end
|
||||
|
||||
function caddy_status()
|
||||
local e={}
|
||||
local sys = require "luci.sys"
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
local port = tonumber(uci:get_first("caddy", "caddy", "port"))
|
||||
e.port = (port or 12311)
|
||||
e.running=luci.sys.call("pidof caddy >/dev/null")==0
|
||||
local tagfile = io.open("/tmp/caddy_time", "r")
|
||||
if tagfile then
|
||||
local tagcontent = tagfile:read("*all")
|
||||
tagfile:close()
|
||||
if tagcontent and tagcontent ~= "" then
|
||||
os.execute("start_time=$(cat /tmp/caddy_time) && time=$(($(date +%s)-start_time)) && day=$((time/86400)) && [ $day -eq 0 ] && day='' || day=${day}天 && time=$(date -u -d @${time} +'%H小时%M分%S秒') && echo $day $time > /tmp/command_caddy 2>&1")
|
||||
local command_output_file = io.open("/tmp/command_caddy", "r")
|
||||
if command_output_file then
|
||||
e.caddysta = command_output_file:read("*all")
|
||||
command_output_file:close()
|
||||
if e.caddysta == "" then
|
||||
e.caddysta = "unknown"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local command2 = io.popen('test ! -z "`pidof caddy`" && (top -b -n1 | grep -E "$(pidof caddy)" 2>/dev/null | grep -v grep | awk \'{for (i=1;i<=NF;i++) {if ($i ~ /caddy/) break; else cpu=i}} END {print $cpu}\')')
|
||||
e.caddycpu = command2:read("*all")
|
||||
command2:close()
|
||||
if e.caddycpu == "" then
|
||||
e.caddycpu = "unknown"
|
||||
end
|
||||
|
||||
local command3 = io.popen("test ! -z `pidof caddy` && (cat /proc/$(pidof caddy | awk '{print $NF}')/status | grep -w VmRSS | awk '{printf \"%.2f MB\", $2/1024}')")
|
||||
e.caddyram = command3:read("*all")
|
||||
command3:close()
|
||||
if e.caddyram == "" then
|
||||
e.caddyram = "unknown"
|
||||
end
|
||||
|
||||
local command4 = io.popen("([ -s /tmp/caddy.tag ] && cat /tmp/caddy.tag ) || (echo `$(uci -q get caddy.@caddy[0].bin_dir) -v |awk '{print $1}' | sed 's/[^0-9.]*//g'` > /tmp/caddy.tag && cat /tmp/caddy.tag)")
|
||||
e.caddytag = command4:read("*all")
|
||||
command4:close()
|
||||
if e.caddytag == "" then
|
||||
e.caddytag = "unknown"
|
||||
end
|
||||
|
||||
local command5 = io.popen("([ -s /tmp/caddynew.tag ] && cat /tmp/caddynew.tag ) || ( curl -L -k -s --connect-timeout 3 --user-agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36' https://api.github.com/repos/caddyserver/caddy/releases/latest | grep tag_name | sed 's/[^0-9.]*//g' >/tmp/caddynew.tag && cat /tmp/caddynew.tag )")
|
||||
e.caddynewtag = command5:read("*all")
|
||||
command5:close()
|
||||
if e.caddynewtag == "" then
|
||||
e.caddynewtag = "unknown"
|
||||
end
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
||||
|
||||
function get_log()
|
||||
luci.http.write(luci.sys.exec("[ -s $(uci -q get caddy.@caddy[0].log_dir) ] && cat $(uci -q get caddy.@caddy[0].log_dir)"))
|
||||
end
|
||||
|
||||
function clear_log()
|
||||
luci.sys.call("cat /dev/null > $(uci -q get caddy.@caddy[0].log_dir)")
|
||||
end
|
||||
|
||||
function admin_info()
|
||||
local validate = luci.sys.exec("$(uci -q get caddy.@caddy[0].bin_dir) validate --config /etc/caddy/Caddyfile --adapter caddyfile 2>&1")
|
||||
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json({ validate = validate })
|
||||
end
|
||||
|
||||
Reference in new issue
Block a user