diff --git a/luci-app-zzz/luasrc/model/cbi/zzz.lua b/luci-app-zzz/luasrc/model/cbi/zzz.lua
index 2195201..209aa08 100644
--- a/luci-app-zzz/luasrc/model/cbi/zzz.lua
+++ b/luci-app-zzz/luasrc/model/cbi/zzz.lua
@@ -1,6 +1,6 @@
-- /usr/lib/lua/luci/model/cbi/zzz.lua
local m, s, o
-local sys = require "luci.sys"
+local sys = require("luci.sys")
-- control
local start_action = luci.http.formvalue("cbid.zzz.auth.start_service")
@@ -8,15 +8,14 @@ local stop_action = luci.http.formvalue("cbid.zzz.auth.stop_service")
local restart_action = luci.http.formvalue("cbid.zzz.auth.restart_service")
if start_action then
- sys.call("/etc/rc.d/S99zzz start")
+ sys.call("/etc/rc.d/S99zzz start")
elseif stop_action then
- sys.call("/etc/rc.d/S99zzz stop")
+ sys.call("/etc/rc.d/S99zzz stop")
elseif restart_action then
- sys.call("/etc/rc.d/S99zzz stop; sleep 2; /etc/rc.d/S99zzz start")
+ sys.call("/etc/rc.d/S99zzz stop; sleep 2; /etc/rc.d/S99zzz start")
end
-m = Map("zzz", "ZZZ 802.1x 认证客户端",
- "配置使用 zzz 客户端进行网络访问的 802.1x 认证")
+m = Map("zzz", "ZZZ 802.1x 认证客户端", "配置使用 zzz 客户端进行网络访问的 802.1x 认证")
-- Authentication Settings
s = m:section(TypedSection, "auth", "认证设置")
@@ -27,20 +26,20 @@ s.addremove = false
o = s:option(DummyValue, "_status", "当前状态")
o.rawhtml = true
o.cfgvalue = function()
- local sys = require "luci.sys"
- local running = sys.call("pgrep zzz >/dev/null") == 0
- if running then
- return "✔ 正在运行中"
- else
- return "✘ 未运行"
- end
+ local sys = require("luci.sys")
+ local running = sys.call("pgrep zzz >/dev/null") == 0
+ if running then
+ return "✔ 正在运行中"
+ else
+ return "✘ 未运行"
+ end
end
-- control buttons
control_buttons = s:option(DummyValue, "_control", "服务控制")
control_buttons.rawhtml = true
control_buttons.cfgvalue = function()
- return [[
+ return [[
@@ -53,17 +52,40 @@ control_buttons.cfgvalue = function()
end
-- Username
-o = s:option(Value, "username", "用户名", "802.1x 认证用户名")
+o = s:option(
+ Value,
+ "username",
+ "用户名",
+ [[802.1x 认证用户名
+?]]
+)
o.password = true
o.rmempty = false
+o.rawhtml = true
-- Password
-o = s:option(Value, "password", "密码", "802.1x 认证密码")
o.password = true
o.rmempty = false
+o = s:option(
+ Value,
+ "password",
+ "密码",
+ [[802.1x 认证密码
+?]]
+)
+o.password = true
+o.rmempty = false
+o.rawhtml = true
-- Network Device
o = s:option(ListValue, "device", "网络接口", "用于认证的网络接口")
+o = s:option(
+ Value,
+ "device",
+ "网络接口",
+ [[用于认证的网络接口
+?]]
+)
o.rmempty = false
o:value("eth0", "eth0")
o:value("eth1", "eth1")
@@ -72,9 +94,9 @@ o:value("wan", "WAN")
-- Add network interface
local interfaces = sys.net.devices()
for _, iface in ipairs(interfaces) do
- if iface ~= "lo" then
- o:value(iface, iface)
- end
+ if iface ~= "lo" then
+ o:value(iface, iface)
+ end
end
-- Auto start
@@ -84,34 +106,42 @@ auto_start.rmempty = false
-- Get Status
auto_start.cfgvalue = function(self, section)
- local has_cron = sys.call("crontab -l 2>/dev/null | grep 'S99zzz' >/dev/null") == 0
- return has_cron and "1" or "0"
+ local has_cron = sys.call("crontab -l 2>/dev/null | grep 'S99zzz' >/dev/null") == 0
+ return has_cron and "1" or "0"
end
-- Crontab
auto_start.write = function(self, section, value)
- if value == "1" then
- -- 启用定时任务:每周一至周五 7:00 启动
- sys.call("(crontab -l 2>/dev/null | grep -v 'S99zzz' | grep -v '# zzz auto') | crontab - 2>/dev/null")
- sys.call("(crontab -l 2>/dev/null; echo '0 7 * * 1,2,3,4,5 /etc/rc.d/S99zzz start # zzz auto start') | crontab -")
- sys.call("/etc/init.d/cron enable && /etc/init.d/cron restart")
- else
- -- 禁用定时任务
- sys.call("(crontab -l 2>/dev/null | grep -v 'S99zzz' | grep -v '# zzz auto') | crontab - 2>/dev/null")
- sys.call("/etc/init.d/cron restart")
- end
+ if value == "1" then
+ -- 启用定时任务:每周一至周五 7:00 启动
+ sys.call("(crontab -l 2>/dev/null | grep -v 'S99zzz' | grep -v '# zzz auto') | crontab - 2>/dev/null")
+ sys.call(
+ "(crontab -l 2>/dev/null; echo '0 7 * * 1,2,3,4,5 /etc/rc.d/S99zzz start # zzz auto start') | crontab -"
+ )
+ sys.call("/etc/init.d/cron enable && /etc/init.d/cron restart")
+ else
+ -- 禁用定时任务
+ sys.call("(crontab -l 2>/dev/null | grep -v 'S99zzz' | grep -v '# zzz auto') | crontab - 2>/dev/null")
+ sys.call("/etc/init.d/cron restart")
+ end
end
-- Crontab Status
timer_status_display = s:option(DummyValue, "_timer_status_display", "定时任务状态")
timer_status_display.rawhtml = true
timer_status_display.cfgvalue = function()
- local cron_output = sys.exec("crontab -l 2>/dev/null | grep 'S99zzz' || echo '未设置'")
- if cron_output:match("S99zzz") then
- return "✔ 已启用 (每周一至周五 7:00 自动启动)"
- else
- return "✘ 未启用"
- end
+ local cron_output = sys.exec("crontab -l 2>/dev/null | grep 'S99zzz' || echo '未设置'")
+ if cron_output:match("S99zzz") then
+ return "✔ 已启用 (每周一至周五 7:00 自动启动)"
+ else
+ return "✘ 未启用"
+ end
+end
+
+-- 保存后自动重启 zzz 服务
+m.on_commit = function(self)
+ local sys = require("luci.sys")
+ sys.call("/etc/rc.d/S99zzz restart >/dev/null 2>&1 &")
end
return m