Create caddy.lua
This commit is contained in:
parent
7bc326e7d6
commit
928f38f5f7
74
luci-app-caddy/luasrc/controller/caddy.lua
Normal file
74
luci-app-caddy/luasrc/controller/caddy.lua
Normal file
@ -0,0 +1,74 @@
|
||||
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
|
||||
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 command1 = io.popen("[ -f /tmp/caddy_time ] && 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")
|
||||
e.caddysta = command1:read("*all")
|
||||
command1:close()
|
||||
if e.caddysta == "" then
|
||||
e.caddysta = "unknown"
|
||||
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("test ! -z `pidof caddy` && 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
|
||||
|
Loading…
x
Reference in New Issue
Block a user