Sfoglia il codice sorgente

feature: force update

rufengsuixing 5 anni fa
parent
commit
9cf26697e3

+ 7 - 1
luasrc/controller/AdGuardHome.lua

@@ -29,7 +29,13 @@ function act_status()
 end
 function do_update()
 	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) &")
+	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('')
 end

+ 20 - 4
luasrc/view/AdGuardHome/AdGuardHome_check.htm

@@ -1,11 +1,23 @@
 <%+cbi/valueheader%>
 <%local fs=require"nixio.fs"%>
 <input type="button" class="cbi-button cbi-button-apply" id="apply_update_button" value="<%:Update core version%>" onclick=" return apply_update() "/>
+<input type="button" class="cbi-button cbi-button-apply" id="apply_forceupdate_button" value="<%:Force update%>" onclick=" return apply_forceupdate()" style="display:none"/>
 <% if self.showfastconfig then %>
 <input type="button" class="cbi-button cbi-button-apply" id="to_configpage" value="<%:Fast config%>" onclick="location.href='<%=url([[admin]], [[services]], [[AdGuardHome]], [[manual]])%>'"/>
 <%end%>
 <textarea id="cbid.logview.1.conf" class="cbi-input-textarea" style="width: 100%;display:none" data-update="change" rows="5" cols="60" readonly="readonly" > </textarea>
 <script type="text/javascript">//<![CDATA[
+function apply_forceupdate(){
+	XHR.get('<%=url([[admin]], [[services]], [[AdGuardHome]], [[doupdate]])%>',{ force: 1 },function(x, data){}
+		);
+	var	btn = document.getElementById('apply_update_button');
+	btn.disabled = true;
+	var	btn2 = document.getElementById('apply_forceupdate_button');
+	btn2.disabled = true;
+	btn2.value    = '<%:Check...%>';
+	poll_check();
+	return
+}
 function apply_update(){
 	XHR.get('<%=url([[admin]], [[services]], [[AdGuardHome]], [[doupdate]])%>',null,function(x, data){}
 		);
@@ -25,10 +37,14 @@ XHR.poll(3, '<%=url([[admin]], [[services]], [[AdGuardHome]], [[check]])%>', nul
 			if (x.responseText=="\u0000"){
 				for(j = 0,len=this.XHR._q.length; j < len; j++) {
 					if (this.XHR._q[j].url == '<%=url([[admin]], [[services]], [[AdGuardHome]], [[check]])%>'){
-					this.XHR._q.splice(j,1);
-					var	btn = document.getElementById('apply_update_button');
-					btn.disabled = false;
-					btn.value    = '<%:Updated%>';
+						this.XHR._q.splice(j,1);
+						var	btn = document.getElementById('apply_update_button');
+						btn.disabled = false;
+						btn.value    = '<%:Updated%>';
+						var btn2 = document.getElementById('apply_forceupdate_button');
+						btn2.value="<%:Force update%>"
+						btn2.style.display="inline"
+						break;
 					}
 				}
 				return	

+ 4 - 1
po/zh-cn/AdGuardHome.po

@@ -212,4 +212,7 @@ msgid "Del"
 msgstr "删除"
 
 magid "Please add log path in config to enable log"
-msgstr "请在设置里填写日志路径以启用日志"
+msgstr "请在设置里填写日志路径以启用日志"
+
+magid "Force update"
+msgstr "强制更新"

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

@@ -26,7 +26,7 @@ check_latest_version(){
 	touch /var/run/AdGfakeconfig 
 	now_ver="$($binpath -c /var/run/AdGfakeconfig --check-config 2>&1| grep -m 1 -E 'v[0-9.]+' -o)"
 	rm /var/run/AdGfakeconfig
-	if [ "${latest_ver}"x != "${now_ver}"x ]; then
+	if [ "${latest_ver}"x != "${now_ver}"x ] || [ "$1" == "force" ]; then
 		clean_log
 		echo -e "Local version: ${now_ver}., cloud version: ${latest_ver}." 
 		doupdate_core
@@ -214,6 +214,6 @@ doupdate_core(){
 
 main(){
 	check_if_already_running
-	check_latest_version
+	check_latest_version $1
 }
-	main
+	main $1