Эх сурвалжийг харах

improve: muti improves

luci can submit when service stop
no backup when update core
crontab improve
rufengsuixing 5 жил өмнө
parent
commit
b5463c9a60

+ 4 - 0
luasrc/model/cbi/AdGuardHome/base.lua

@@ -267,6 +267,10 @@ o.write = function(self, section, value)
 end
 fs.writefile("/var/run/lucilogpos","0")
 function m.on_commit(map)
+	if (fs.access("/var/run/AdGserverdis")) then
+		io.popen("/etc/init.d/AdGuardHome reload &")
+		return
+	end
 	local ucitracktest=uci:get("AdGuardHome","AdGuardHome","ucitracktest")
 	if ucitracktest=="1" then
 		return

+ 20 - 12
root/etc/init.d/AdGuardHome

@@ -506,9 +506,11 @@ stop_service()
 	config_load "${CONFIGURATION}"
 	_do_redirect 0
 	do_crontab
-	config_get backupfile $CONFIGURATION backupfile "0"
-	if [ -n "$backupfile" ]; then
-		backup
+	if [ "$1" != "nobackup" ]; then
+		config_get backupfile $CONFIGURATION backupfile "0"
+		if [ -n "$backupfile" ]; then
+			backup
+		fi
 	fi
 	echo "AdGuardHome service disabled"
 	touch /var/run/AdGserverdis
@@ -536,21 +538,21 @@ do_crontab(){
 	
 	config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome"
 	config_get lastworkdir $CONFIGURATION lastworkdir "/usr/bin/AdGuardHome"
-	findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* $workdir/data/querylog.json"
-	[ -n "$lastworkdir" ] && findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* $lastworkdir/data/querylog.json" && [ "$lastworkdir" != "$workdir" ] && replace="${lastworkdir//\//\\/}/${workdir//\//\\/}"
-	default="0 * * * * /usr/share/AdGuardHome/tailto.sh 2000 $workdir/data/querylog.json"
+	findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* \$(uci get AdGuardHome.AdGuardHome.workdir)/data/querylog.json"
+	#[ -n "$lastworkdir" ] && findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* $lastworkdir/data/querylog.json" && [ "$lastworkdir" != "$workdir" ] && replace="${lastworkdir//\//\\/}/${workdir//\//\\/}"
+	default="0 * * * * /usr/share/AdGuardHome/tailto.sh 2000 \$(uci get AdGuardHome.AdGuardHome.workdir)/data/querylog.json"
 	[ "$enabled" == "0" ] || [ "${crontab//cutquerylog/}" == "$crontab" ] && cronenable=0 || cronenable=1
 	crontab_editor
-	[ "$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 ""
-	findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* $logfile"
-	default="30 3 * * * /usr/share/AdGuardHome/tailto.sh 2000 $logfile"
-	[ -n "$lastlogfile" ] && findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* $lastlogfile" && [ -n "$logfile" ] && [ "$lastlogfile" != "$logfile" ] && replace="${lastlogfile//\//\\/}/${logfile//\//\\/}"
+	findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* \$(uci get AdGuardHome.AdGuardHome.logfile)"
+	default="30 3 * * * /usr/share/AdGuardHome/tailto.sh 2000 \$(uci get AdGuardHome.AdGuardHome.logfile)"
+	#[ -n "$lastlogfile" ] && findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* $lastlogfile" && [ -n "$logfile" ] && [ "$lastlogfile" != "$logfile" ] && replace="${lastlogfile//\//\\/}/${logfile//\//\\/}"
 	[ "$logfile" == "syslog" ] || [ "$logfile" == "" ] || [ "$enabled" == "0" ] || [ "${crontab//cutruntimelog/}" == "$crontab" ] && cronenable=0 || cronenable=1
 	crontab_editor
-	[ -n "$logfile" ] && [ "$lastlogfile" != "$logfile" ] && uci set AdGuardHome.AdGuardHome.lastlogfile="$logfile" && commit=1
+	#[ -n "$logfile" ] && [ "$lastlogfile" != "$logfile" ] && uci set AdGuardHome.AdGuardHome.lastlogfile="$logfile" && commit=1
 	
 	findstr="/usr/share/AdGuardHome/addhost.sh"
 	default="0 * * * * /usr/share/AdGuardHome/addhost.sh"
@@ -563,9 +565,15 @@ do_crontab(){
 	[ "$enabled" == "0" ] || [ "${crontab//autogfw/}" == "$crontab" ] && cronenable=0 || cronenable=1
 	crontab_editor
 	[ "$cronreload" -gt 0 ] && /etc/init.d/cron restart
-	[ "$commit" -gt 0 ] && uci commit AdGuardHome
+	#[ "$commit" -gt 0 ] && uci commit AdGuardHome
 }
 crontab_editor(){
+	#usage input:
+	#findstr=
+	#default=
+	#cronenable=
+	#replace="${last//\//\\/}/${now//\//\\/}"
+	#output:cronreload:if >1 please /etc/init.d/cron restart manual
 	local testline reload
 	local line="$(grep "$findstr" $CRON_FILE)"
 	[ -n "$replace" ] && [ -n "$line" ] && eval testline="\${line//$replace}" && [ "$testline" != "$line" ] && line="$testline" && reload="1" && replace="" 

+ 1 - 1
root/usr/share/AdGuardHome/update_core.sh

@@ -37,7 +37,7 @@ check_latest_version(){
 					rm -fr /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/}
 					/tmp/upx-${upx_latest_ver}-${Arch}_linux/upx $upxflag $binpath -o /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/}
 					rm -rf /tmp/upx-${upx_latest_ver}-${Arch}_linux
-					/etc/init.d/AdGuardHome stop
+					/etc/init.d/AdGuardHome stop nobackup
 					rm $binpath
 					mv -f /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} $binpath
 					/etc/init.d/AdGuardHome start