1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- module("luci.controller.AdGuardHome",package.seeall)
- nixio=require"nixio"
- local uci=require"luci.model.uci".cursor()
- function index()
- entry({"admin", "services", "AdGuardHome"},
- alias("admin", "services", "AdGuardHome", "base"),
- _("AdGuard Home"), 10).dependent = true
- entry({"admin","services","AdGuardHome","base"},cbi("AdGuardHome/base"),_("Base Setting"),1).leaf = true
- entry({"admin","services","AdGuardHome","log"},form("AdGuardHome/log"),_("Log"),2).leaf = true
- entry({"admin","services","AdGuardHome","manual"},cbi("AdGuardHome/manual"),_("Manual Config"),3).leaf = true
- entry({"admin","services","AdGuardHome","status"},call("act_status")).leaf=true
- entry({"admin", "services", "AdGuardHome", "check"}, call("check_update"))
- entry({"admin", "services", "AdGuardHome", "doupdate"}, call("do_update"))
- entry({"admin", "services", "AdGuardHome", "getlog"}, call("get_log"))
- entry({"admin", "services", "AdGuardHome", "dodellog"}, call("do_dellog"))
- end
- function act_status()
- local e={}
- binpath=uci:get("AdGuardHome","AdGuardHome","binpath")
- e.running=luci.sys.call("pgrep "..binpath.." >/dev/null")==0
- luci.http.prepare_content("application/json")
- luci.http.write_json(e)
- end
- function do_update()
- nixio.fs.writefile("/var/run/lucilogpos","0")
- luci.sys.exec("(rm /var/run/update_core_error ; touch /var/run/update_core ; sh /usr/share/AdGuardHome/update_core.sh >/tmp/AdGuardHome_update.log 2>&1 || touch /var/run/update_core_error ;rm /var/run/update_core) &")
- luci.http.prepare_content("application/json")
- luci.http.write('')
- end
- function get_log()
- local logfile=uci:get("AdGuardHome","AdGuardHome","logfile")
- if (logfile==nil) then
- luci.http.write("no log available\n")
- return
- elseif (logfile=="syslog") then
- if not nixio.fs.access("/var/run/AdGuardHomesyslog") then
- luci.sys.exec("(/usr/share/AdGuardHome/getsyslog.sh &); sleep 1;")
- end
- logfile="/tmp/AdGuardHometmp.log"
- nixio.fs.writefile("/var/run/AdGuardHomesyslog","1")
- elseif not nixio.fs.access(logfile) then
- luci.http.write("log file not created\n")
- return
- end
- luci.http.prepare_content("text/plain; charset=utf-8")
- logpos=nixio.fs.readfile("/var/run/lucilogpos")
- if (logpos ~= nil) then
- fdp=tonumber(logpos)
- else
- fdp=0
- end
- f=io.open(logfile, "r+")
- f:seek("set",fdp)
- a=f:read(2048000)
- if (a==nil) then
- a=""
- end
- fdp=f:seek()
- nixio.fs.writefile("/var/run/lucilogpos",tostring(fdp))
- f:close()
- luci.http.write(a)
- end
- function do_dellog()
- logfile=uci:get("AdGuardHome","AdGuardHome","logfile")
- nixio.fs.writefile(logfile,"")
- luci.http.prepare_content("application/json")
- luci.http.write('')
- end
- function check_update()
- luci.http.prepare_content("text/plain; charset=utf-8")
- logpos=nixio.fs.readfile("/var/run/lucilogpos")
- if (logpos ~= nil) then
- fdp=tonumber(logpos)
- else
- fdp=0
- end
- f=io.open("/tmp/AdGuardHome_update.log", "r+")
- f:seek("set",fdp)
- a=f:read(2048000)
- if (a==nil) then
- a=""
- end
- fdp=f:seek()
- nixio.fs.writefile("/var/run/lucilogpos",tostring(fdp))
- f:close()
- if nixio.fs.access("/var/run/update_core") then
- luci.http.write(a)
- else
- luci.http.write(a.."\0")
- end
- end
|