Prechádzať zdrojové kódy

improve:luci update and forceupdate

force update will kill update progress and restart
update will test old update progress and show log
rufengsuixing 5 rokov pred
rodič
commit
5eecff1964

+ 9 - 3
luasrc/controller/AdGuardHome.lua

@@ -57,15 +57,21 @@ function act_status()
 end
 function do_update()
 	fs.writefile("/var/run/lucilogpos","0")
+	http.prepare_content("application/json")
+	http.write('')
 	local arg
 	if luci.http.formvalue("force") == "1" then
 		arg="force"
 	else
 		arg=""
 	end
-	luci.sys.exec("(rm /var/run/update_core_error ; touch /var/run/update_core ; sh /usr/share/AdGuardHome/update_core.sh "..arg.." >/tmp/AdGuardHome_update.log 2>&1 || touch /var/run/update_core_error ;rm /var/run/update_core) &")
-	http.prepare_content("application/json")
-	http.write('')
+	if fs.access("/var/run/update_core") then
+		if arg=="force" then
+			luci.sys.exec("kill $(pgrep /usr/share/AdGuardHome/update_core.sh) ; (rm /var/run/update_core_error ; touch /var/run/update_core ; sh /usr/share/AdGuardHome/update_core.sh "..arg.." >/tmp/AdGuardHome_update.log 2>&1 || touch /var/run/update_core_error ;rm /var/run/update_core) &")
+		end
+	else
+		luci.sys.exec("(rm /var/run/update_core_error ; touch /var/run/update_core ; sh /usr/share/AdGuardHome/update_core.sh "..arg.." >/tmp/AdGuardHome_update.log 2>&1 || touch /var/run/update_core_error ;rm /var/run/update_core) &")
+	end
 end
 function get_log()
 	local logfile=uci:get("AdGuardHome","AdGuardHome","logfile")

+ 1 - 1
root/etc/init.d/AdGuardHome

@@ -540,7 +540,7 @@ do_crontab(){
 	default="0 * * * * tail -n 2000 $workdir/data/querylog.json > $workdir/data/querylog.json"
 	[ "$enabled" == "0" ] || [ "${crontab//cutquerylog/}" == "$crontab" ] && cronenable=0 || cronenable=1
 	crontab_editor
-	[ -n "$workdir" ] && [ "$lastworkdir" != "$workdir" ] && uci set AdGuardHome.AdGuardHome.lastworkdir="$workdir" && commit=1
+	[ "$lastworkdir" != "$workdir" ] && uci set AdGuardHome.AdGuardHome.lastworkdir="$workdir" && commit=1
 	
 	config_get logfile $CONFIGURATION logfile ""
 	config_get lastlogfile $CONFIGURATION lastlogfile ""