luci-app-adguardhome: sync with upstream source
This commit is contained in:
parent
22cf1a5adc
commit
522cad4e36
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-adguardhome
|
||||
PKG_VERSION:=1.8
|
||||
PKG_RELEASE:=9
|
||||
PKG_RELEASE:=11
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
@ -20,7 +20,7 @@ define Package/luci-app-adguardhome
|
||||
TITLE:=LuCI app for adguardhome
|
||||
PKG_MAINTAINER:=<https://github.com/rufengsuixing/luci-app-adguardhome>
|
||||
PKGARCH:=all
|
||||
DEPENDS:=+wget
|
||||
DEPENDS:=+!wget&&!curl:wget
|
||||
endef
|
||||
|
||||
define Package/luci-app-adguardhome/description
|
||||
|
||||
@ -89,7 +89,13 @@ function get_log()
|
||||
return
|
||||
end
|
||||
http.prepare_content("text/plain; charset=utf-8")
|
||||
local fdp=tonumber(fs.readfile("/var/run/lucilogpos")) or 0
|
||||
local fdp
|
||||
if fs.access("/var/run/lucilogreload") then
|
||||
fdp=0
|
||||
fs.remove("/var/run/lucilogreload")
|
||||
else
|
||||
fdp=tonumber(fs.readfile("/var/run/lucilogpos")) or 0
|
||||
end
|
||||
local f=io.open(logfile, "r+")
|
||||
f:seek("set",fdp)
|
||||
local a=f:read(2048000) or ""
|
||||
|
||||
@ -43,7 +43,6 @@ else
|
||||
uci:set("AdGuardHome","AdGuardHome","version",version)
|
||||
uci:set("AdGuardHome","AdGuardHome","binmtime",testtime)
|
||||
uci:save("AdGuardHome")
|
||||
uci:commit("AdGuardHome")
|
||||
end
|
||||
e=version..e
|
||||
end
|
||||
@ -192,12 +191,20 @@ o.default = ""
|
||||
o.datatype = "string"
|
||||
o.template = "AdGuardHome/AdGuardHome_chpass"
|
||||
o.optional = true
|
||||
---- database protect
|
||||
o = s:option(Flag, "keepdb", translate("Keep database when system upgrade"))
|
||||
o.default = 0
|
||||
o.optional = true
|
||||
---- upgrade protect
|
||||
o = s:option(MultiValue, "upprotect", translate("Keep files when system upgrade"))
|
||||
o:value("$binpath",translate("core bin"))
|
||||
o:value("$configpath",translate("config file"))
|
||||
o:value("$logfile",translate("log file"))
|
||||
o:value("$workdir/data/sessions.db",translate("sessions.db"))
|
||||
o:value("$workdir/data/stats.db",translate("stats.db"))
|
||||
o:value("$workdir/data/querylog.json",translate("querylog.json"))
|
||||
o:value("$workdir/data/filters",translate("filters"))
|
||||
o.widget = "checkbox"
|
||||
o.default = nil
|
||||
o.optional=true
|
||||
---- wait net on boot
|
||||
o = s:option(Flag, "waitonboot", translate("Boot delay until network ok"))
|
||||
o = s:option(Flag, "waitonboot", translate("On boot when network ok restart"))
|
||||
o.default = 1
|
||||
o.optional = true
|
||||
---- backup workdir on shutdown
|
||||
@ -208,13 +215,15 @@ local name
|
||||
o:value("filters","filters")
|
||||
o:value("stats.db","stats.db")
|
||||
o:value("querylog.json","querylog.json")
|
||||
o:value("sessions.db","sessions.db")
|
||||
o1:depends ("backupfile", "filters")
|
||||
o1:depends ("backupfile", "stats.db")
|
||||
o1:depends ("backupfile", "querylog.json")
|
||||
o1:depends ("backupfile", "sessions.db")
|
||||
for name in fs.glob(workdir.."/data/*")
|
||||
do
|
||||
name=fs.basename (name)
|
||||
if name~="filters" and name~="stats.db" and name~="querylog.json" then
|
||||
if name~="filters" and name~="stats.db" and name~="querylog.json" and name~="sessions.db" then
|
||||
o:value(name,name)
|
||||
o1:depends ("backupfile", name)
|
||||
end
|
||||
@ -260,7 +269,6 @@ o = s:option(TextValue, "downloadlinks",translate("Download links for update"))
|
||||
o.optional = false
|
||||
o.rows = 4
|
||||
o.wrap = "soft"
|
||||
o.size=111
|
||||
o.cfgvalue = function(self, section)
|
||||
return fs.readfile("/usr/share/AdGuardHome/links.txt")
|
||||
end
|
||||
@ -269,17 +277,21 @@ 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
|
||||
elseif ucitracktest=="0" then
|
||||
io.popen("/etc/init.d/AdGuardHome reload &")
|
||||
else
|
||||
if (fs.access("/var/run/AdGucitest")) then
|
||||
if (fs.access("/var/run/AdGlucitest")) then
|
||||
uci:set("AdGuardHome","AdGuardHome","ucitracktest","0")
|
||||
io.popen("/etc/init.d/AdGuardHome reload &")
|
||||
else
|
||||
fs.writefile("/var/run/AdGucitest","")
|
||||
fs.writefile("/var/run/AdGlucitest","")
|
||||
if (ucitracktest=="2") then
|
||||
uci:set("AdGuardHome","AdGuardHome","ucitracktest","1")
|
||||
else
|
||||
@ -287,7 +299,6 @@ function m.on_commit(map)
|
||||
end
|
||||
end
|
||||
uci:save("AdGuardHome")
|
||||
uci:commit("AdGuardHome")
|
||||
end
|
||||
end
|
||||
return m
|
||||
@ -12,5 +12,5 @@ t.readonly="readonly"
|
||||
local logfile=uci:get("AdGuardHome","AdGuardHome","logfile") or ""
|
||||
t.timereplace=(logfile~="syslog" and logfile~="" )
|
||||
t.pollcheck=logfile~=""
|
||||
fs.writefile("/var/run/lucilogpos","0")
|
||||
fs.writefile("/var/run/lucilogreload","")
|
||||
return f
|
||||
|
||||
@ -91,7 +91,7 @@ function m.on_commit(map)
|
||||
elseif ucitracktest=="0" then
|
||||
io.popen("/etc/init.d/AdGuardHome reload &")
|
||||
else
|
||||
fs.writefile("/var/run/AdGucitest","")
|
||||
fs.writefile("/var/run/AdGlucitest","")
|
||||
end
|
||||
end
|
||||
return m
|
||||
@ -59,19 +59,21 @@ function p(s) {
|
||||
function line_tolocal(str){
|
||||
var strt=new Array();
|
||||
str.trim().split('\n').forEach(function(v, i) {
|
||||
if (v==""){strt[i]="";return;}
|
||||
var dt = new Date(v.substring(0,19)+" UTC");
|
||||
strt[i]=dt.getFullYear()+"/"+p(dt.getMonth()+1)+"/"+p(dt.getDate())+" "+p(dt.getHours())+":"+p(dt.getMinutes())+":"+p(dt.getSeconds())+v.substring(19)
|
||||
})
|
||||
if (dt != "Invalid Date"){
|
||||
strt[i]=dt.getFullYear()+"/"+p(dt.getMonth()+1)+"/"+p(dt.getDate())+" "+p(dt.getHours())+":"+p(dt.getMinutes())+":"+p(dt.getSeconds())+v.substring(19);
|
||||
}else{
|
||||
strt[i]=v;}})
|
||||
return strt
|
||||
}
|
||||
function line_toUTC(str){
|
||||
var strt=new Array();
|
||||
str.trim().split('\n').forEach(function(v, i) {
|
||||
if (v==""){strt[i]="";return;}
|
||||
var dt = new Date(v.substring(0,19))
|
||||
strt[i]=dt.getUTCFullYear()+"/"+p(dt.getUTCMonth()+1)+"/"+p(dt.getUTCDate())+" "+p(dt.getUTCHours())+":"+p(dt.getUTCMinutes())+":"+p(dt.getUTCSeconds())+v.substring(19)
|
||||
})
|
||||
if (dt != "Invalid Date"){
|
||||
strt[i]=dt.getUTCFullYear()+"/"+p(dt.getUTCMonth()+1)+"/"+p(dt.getUTCDate())+" "+p(dt.getUTCHours())+":"+p(dt.getUTCMinutes())+":"+p(dt.getUTCSeconds())+v.substring(19);
|
||||
}else{
|
||||
strt[i]=v;}})
|
||||
return strt
|
||||
}
|
||||
function poll_check(){
|
||||
|
||||
@ -170,11 +170,23 @@ msgstr "为空"
|
||||
msgid "Press load culculate model and culculate finally save/apply"
|
||||
msgstr "按载入计算模块 然后计算 最后保存/提交"
|
||||
#
|
||||
msgid "Keep database when system upgrade"
|
||||
msgstr "系统升级时保留数据"
|
||||
msgid "Keep files when system upgrade"
|
||||
msgstr "系统升级时保留文件"
|
||||
#checkbox
|
||||
msgid "core bin"
|
||||
msgstr "核心执行文件"
|
||||
|
||||
msgid "Boot delay until network ok"
|
||||
msgstr "开机时直到网络准备好再启动"
|
||||
msgid "config file"
|
||||
msgstr "配置文件"
|
||||
|
||||
msgid "log file"
|
||||
msgstr "日志文件"
|
||||
|
||||
msgid "querylog.json"
|
||||
msgstr "审计日志.json"
|
||||
#
|
||||
msgid "On boot when network ok restart"
|
||||
msgstr "开机后网络准备好时重启"
|
||||
|
||||
msgid "Backup workdir files when shutdown"
|
||||
msgstr "在关机时备份工作目录文件"
|
||||
@ -232,6 +244,8 @@ msgstr "使用模板"
|
||||
msgid "Reload Config"
|
||||
msgstr "重新载入配置"
|
||||
|
||||
msgid "WARNING!!! no bin found apply config will not be test"
|
||||
msgstr "警告!!!未找到执行文件,提交配置将不会进行校验"
|
||||
#unused
|
||||
msgid "Change browser management username"
|
||||
msgstr "改变网页登录用户名"
|
||||
@ -244,3 +258,9 @@ msgstr "检查配置"
|
||||
|
||||
msgid "unknown"
|
||||
msgstr "未知"
|
||||
|
||||
msgid "Keep database when system upgrade"
|
||||
msgstr "系统升级时保留数据"
|
||||
|
||||
msgid "Boot delay until network ok"
|
||||
msgstr "开机时直到网络准备好再启动"
|
||||
@ -7,10 +7,12 @@ STOP=01
|
||||
|
||||
CONFIGURATION=AdGuardHome
|
||||
CRON_FILE=/etc/crontabs/root
|
||||
EXTRA_COMMANDS="do_redirect testbackup test_crontab"
|
||||
EXTRA_COMMANDS="do_redirect testbackup test_crontab force_reload isrunning"
|
||||
EXTRA_HELP=" do_redirect 0 or 1\
|
||||
testbackup backup or restore\
|
||||
test_crontab"
|
||||
test_crontab
|
||||
force_reload
|
||||
isrunning"
|
||||
set_forward_dnsmasq()
|
||||
{
|
||||
local PORT="$1"
|
||||
@ -120,10 +122,26 @@ EOF
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger firewall
|
||||
procd_add_reload_trigger "$CONFIGURATION"
|
||||
[ "$(uci get AdGuardHome.AdGuardHome.redirect)" == "redirect" ] && procd_add_reload_trigger firewall
|
||||
}
|
||||
isrunning(){
|
||||
config_load "${CONFIGURATION}"
|
||||
_isrunning
|
||||
local r=$?
|
||||
([ "$r" == "0" ] && echo "running") || ([ "$r" == "1" ] && echo "not run" ) || echo "no bin"
|
||||
return $r
|
||||
}
|
||||
_isrunning(){
|
||||
config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome"
|
||||
[ ! -f "$binpath" ] && return 2
|
||||
pgrep $binpath 2>&1 >/dev/null && return 0
|
||||
return 1
|
||||
}
|
||||
force_reload(){
|
||||
config_load "${CONFIGURATION}"
|
||||
_isrunning && procd_send_signal "$CONFIGURATION" || start
|
||||
}
|
||||
|
||||
get_tz()
|
||||
{
|
||||
SET_TZ=""
|
||||
@ -187,10 +205,13 @@ use_port53()
|
||||
uci commit dhcp
|
||||
/etc/init.d/dnsmasq reload
|
||||
}
|
||||
|
||||
do_redirect()
|
||||
{
|
||||
config_load "${CONFIGURATION}"
|
||||
_do_redirect $1
|
||||
}
|
||||
_do_redirect()
|
||||
{
|
||||
local section="$CONFIGURATION"
|
||||
args=""
|
||||
ipv6_server=1
|
||||
@ -314,21 +335,20 @@ config_editor()
|
||||
}
|
||||
|
||||
boot_service() {
|
||||
rm /var/run/AdGserverdis >/dev/null 2>&1
|
||||
config_load "${CONFIGURATION}"
|
||||
config_get waitonboot $CONFIGURATION waitonboot "0"
|
||||
config_get_bool enabled $CONFIGURATION enabled 0
|
||||
if [ "$enabled" == "1" ]; then
|
||||
if [ "$waitonboot" == "1" ]; then
|
||||
do_redirect 0
|
||||
procd_open_instance "waitnet"
|
||||
procd_set_param command "/usr/share/AdGuardHome/waitnet.sh"
|
||||
procd_close_instance
|
||||
echo "no net start pinging"
|
||||
else
|
||||
start_service
|
||||
fi
|
||||
config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome"
|
||||
[ -f "$binpath" ] && start_service
|
||||
if [ "$enabled" == "1" ] && [ "$waitonboot" == "1" ]; then
|
||||
procd_open_instance "waitnet"
|
||||
procd_set_param command "/usr/share/AdGuardHome/waitnet.sh"
|
||||
procd_close_instance
|
||||
echo "no net start pinging"
|
||||
fi
|
||||
}
|
||||
|
||||
testbackup(){
|
||||
config_load "${CONFIGURATION}"
|
||||
if [ "$1" == "backup" ]; then
|
||||
@ -372,9 +392,11 @@ backup() {
|
||||
}
|
||||
start_service() {
|
||||
# Reading config
|
||||
rm /var/run/AdGserverdis >/dev/null 2>&1
|
||||
config_load "${CONFIGURATION}"
|
||||
# update password
|
||||
config_get hashpass $CONFIGURATION hashpass ""
|
||||
config_get configpath $CONFIGURATION configpath "/etc/AdGuardHome.yaml"
|
||||
if [ -n "$hashpass" ]; then
|
||||
config_editor "users.password" "$hashpass" "$configpath"
|
||||
uci set $CONFIGURATION.$CONFIGURATION.hashpass=""
|
||||
@ -384,8 +406,7 @@ start_service() {
|
||||
# update crontab
|
||||
do_crontab
|
||||
if [ "$enabled" == "0" ]; then
|
||||
procd_kill $CONFIGURATION
|
||||
do_redirect 0
|
||||
_do_redirect 0
|
||||
return
|
||||
fi
|
||||
#what need to do before reload
|
||||
@ -414,29 +435,26 @@ start_service() {
|
||||
fi
|
||||
fi
|
||||
local ADDITIONAL_ARGS=""
|
||||
config_get configpath $CONFIGURATION configpath "/etc/AdGuardHome.yaml"
|
||||
config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome"
|
||||
|
||||
echo -e "$configpath\n$binpath">/lib/upgrade/keep.d/luci-app-adguardhome
|
||||
mkdir -p ${binpath%/*}
|
||||
ADDITIONAL_ARGS="$ADDITIONAL_ARGS -c $configpath"
|
||||
ADDITIONAL_ARGS="$ADDITIONAL_ARGS -w $workdir"
|
||||
config_get httpport $CONFIGURATION httpport 3000
|
||||
ADDITIONAL_ARGS="$ADDITIONAL_ARGS -p $httpport"
|
||||
|
||||
echo -e "$configpath\n$binpath">/lib/upgrade/keep.d/luci-app-adguardhome
|
||||
# hack to save config file when upgrade system
|
||||
config_get keepdb $CONFIGURATION keepdb 0
|
||||
if [ "$keepdb" -eq 1 ]; then
|
||||
echo -e "$workdir/data/sessions.db\n$workdir/data/stats.db\n$workdir/data/querylog.json">>/lib/upgrade/keep.d/luci-app-adguardhome
|
||||
fi
|
||||
config_get upprotect $CONFIGURATION upprotect ""
|
||||
eval upprotect=${upprotect// /\\\\n}
|
||||
echo -e "$upprotect">/lib/upgrade/keep.d/luci-app-adguardhome
|
||||
|
||||
config_get logfile $CONFIGURATION logfile ""
|
||||
if [ -n "$logfile" ]; then
|
||||
ADDITIONAL_ARGS="$ADDITIONAL_ARGS -l $logfile"
|
||||
fi
|
||||
|
||||
if [ ! -f "$binpath" ]; then
|
||||
do_redirect 0
|
||||
_do_redirect 0
|
||||
/usr/share/AdGuardHome/update_core.sh 2>&1 >/tmp/AdGuardHome_update.log &
|
||||
exit 0
|
||||
fi
|
||||
@ -452,15 +470,15 @@ start_service() {
|
||||
procd_set_param env TZ="$SET_TZ"
|
||||
fi
|
||||
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
|
||||
procd_set_param limits core="unlimited" nofile="unlimited"
|
||||
procd_set_param limits core="unlimited" nofile="65535 65535"
|
||||
procd_set_param stderr 1
|
||||
procd_set_param command $binpath $ADDITIONAL_ARGS
|
||||
procd_set_param file "$configpath" "/etc/hosts" "/etc/config/AdGuardHome"
|
||||
procd_close_instance
|
||||
if [ -f "$configpath" ]; then
|
||||
do_redirect 1
|
||||
_do_redirect 1
|
||||
else
|
||||
do_redirect 0
|
||||
_do_redirect 0
|
||||
config_get "redirect" "AdGuardHome" "redirect" "none"
|
||||
if [ "$redirect" != "none" ]; then
|
||||
procd_open_instance "waitconfig"
|
||||
@ -469,12 +487,13 @@ start_service() {
|
||||
echo "no config start watching"
|
||||
fi
|
||||
fi
|
||||
echo "AdGuardHome turn on"
|
||||
(sleep 10 && [ -z "$(pgrep $binpath)" ] && logger "AdGuardHome" "no process in 10s cancel redirect" && do_redirect 0 )&
|
||||
echo "AdGuardHome service enabled"
|
||||
echo "luci enable switch=$enabled"
|
||||
(sleep 10 && [ -z "$(pgrep $binpath)" ] && logger "AdGuardHome" "no process in 10s cancel redirect" && _do_redirect 0 )&
|
||||
}
|
||||
reload_service()
|
||||
{
|
||||
rm /var/run/AdGucitest >/dev/null 2>&1
|
||||
rm /var/run/AdGlucitest >/dev/null 2>&1
|
||||
echo "AdGuardHome reloading"
|
||||
start
|
||||
}
|
||||
@ -499,14 +518,16 @@ fi
|
||||
stop_service()
|
||||
{
|
||||
config_load "${CONFIGURATION}"
|
||||
do_redirect 0
|
||||
_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 turn off"
|
||||
echo "enabled=$enabled"
|
||||
echo "AdGuardHome service disabled"
|
||||
touch /var/run/AdGserverdis
|
||||
}
|
||||
boot() {
|
||||
rc_procd boot_service "$@"
|
||||
@ -531,21 +552,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"
|
||||
@ -558,10 +579,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=""
|
||||
|
||||
0
package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/firewall.start
Normal file → Executable file
0
package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/firewall.start
Normal file → Executable file
@ -13,15 +13,21 @@ check_if_already_running(){
|
||||
[ "${running_tasks}" -gt "2" ] && echo -e "\nA task is already running." && EXIT 2
|
||||
}
|
||||
|
||||
check_wgetcurl(){
|
||||
which curl && downloader="curl -L -k --retry 2 --connect-timeout 20 -o" && return
|
||||
which wget-ssl && downloader="wget-ssl --no-check-certificate -t 2 -T 20 -O" && return
|
||||
[ -z "$1" ] && opkg update || (echo error opkg && EXIT 1)
|
||||
[ -z "$1" ] && (opkg remove wget wget-nossl --force-depends ; opkg install wget ; check_wgetcurl 1 ;return)
|
||||
[ "$1" == "1" ] && (opkg install curl ; check_wgetcurl 2 ; return)
|
||||
echo error curl and wget && EXIT 1
|
||||
}
|
||||
check_latest_version(){
|
||||
latest_ver="$(wget -O- https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest 2>/dev/null|grep -E 'tag_name' |grep -E 'v[0-9.]+' -o 2>/dev/null)"
|
||||
check_wgetcurl
|
||||
latest_ver="$($downloader - https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest 2>/dev/null|grep -E 'tag_name' |grep -E 'v[0-9.]+' -o 2>/dev/null)"
|
||||
if [ -z "${latest_ver}" ]; then
|
||||
wget -V | grep +https >/dev/null || (opkg update && opkg remove wget-nossl --force-depends && opkg install wget && check_latest_version && EXIT 0)
|
||||
echo -e "\nFailed to check latest version, please try again later." && EXIT 1
|
||||
fi
|
||||
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
|
||||
now_ver="$($binpath -c /dev/null --check-config 2>&1| grep -m 1 -E 'v[0-9.]+' -o)"
|
||||
if [ "${latest_ver}"x != "${now_ver}"x ] || [ "$1" == "force" ]; then
|
||||
echo -e "Local version: ${now_ver}., cloud version: ${latest_ver}."
|
||||
doupdate_core
|
||||
@ -37,7 +43,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
|
||||
@ -96,10 +102,10 @@ doupx(){
|
||||
EXIT 1
|
||||
;;
|
||||
esac
|
||||
upx_latest_ver="$(wget -O- https://api.github.com/repos/upx/upx/releases/latest 2>/dev/null|grep -E 'tag_name' |grep -E '[0-9.]+' -o 2>/dev/null)"
|
||||
wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz "https://github.com/upx/upx/releases/download/v${upx_latest_ver}/upx-${upx_latest_ver}-${Arch}_linux.tar.xz" 2>&1
|
||||
upx_latest_ver="$($downloader - https://api.github.com/repos/upx/upx/releases/latest 2>/dev/null|grep -E 'tag_name' |grep -E '[0-9.]+' -o 2>/dev/null)"
|
||||
$downloader /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz "https://github.com/upx/upx/releases/download/v${upx_latest_ver}/upx-${upx_latest_ver}-${Arch}_linux.tar.xz" 2>&1
|
||||
#tar xvJf
|
||||
which xz || (opkg update && opkg install xz) || (echo "xz download fail" && EXIT 1)
|
||||
which xz || (opkg list | grep ^xz || opkg update && opkg install xz) || (echo "xz download fail" && EXIT 1)
|
||||
mkdir -p /tmp/upx-${upx_latest_ver}-${Arch}_linux
|
||||
xz -d -c /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz| tar -x -C "/tmp" >/dev/null 2>&1
|
||||
if [ ! -e "/tmp/upx-${upx_latest_ver}-${Arch}_linux/upx" ]; then
|
||||
@ -165,7 +171,7 @@ doupdate_core(){
|
||||
while read link
|
||||
do
|
||||
eval link="$link"
|
||||
wget-ssl --no-check-certificate -t 2 -T 20 -O /tmp/AdGuardHomeupdate/${link##*/} "$link" 2>&1
|
||||
$downloader /tmp/AdGuardHomeupdate/${link##*/} "$link" 2>&1
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "download failed try another download"
|
||||
rm -f /tmp/AdGuardHomeupdate/${link##*/}
|
||||
@ -196,7 +202,7 @@ doupdate_core(){
|
||||
rm -rf /tmp/upx-${upx_latest_ver}-${Arch}_linux
|
||||
fi
|
||||
echo -e "start copy"
|
||||
/etc/init.d/AdGuardHome stop
|
||||
/etc/init.d/AdGuardHome stop nobackup
|
||||
rm "$binpath"
|
||||
mv -f "$downloadbin" "$binpath"
|
||||
if [ "$?" == "1" ]; then
|
||||
|
||||
@ -5,29 +5,29 @@ while :
|
||||
do
|
||||
ping -c 1 -W 1 -q www.baidu.com 1>/dev/null 2>&1
|
||||
if [ "$?" == "0" ]; then
|
||||
/etc/init.d/AdGuardHome reload
|
||||
/etc/init.d/AdGuardHome force_reload
|
||||
break
|
||||
fi
|
||||
ping -c 1 -W 1 -q 202.108.22.5 1>/dev/null 2>&1
|
||||
if [ "$?" == "0" ]; then
|
||||
/etc/init.d/AdGuardHome reload
|
||||
/etc/init.d/AdGuardHome force_reload
|
||||
break
|
||||
fi
|
||||
sleep 5
|
||||
ping -c 1 -W 1 -q www.google.com 1>/dev/null 2>&1
|
||||
if [ "$?" == "0" ]; then
|
||||
/etc/init.d/AdGuardHome reload
|
||||
/etc/init.d/AdGuardHome force_reload
|
||||
break
|
||||
fi
|
||||
ping -c 1 -W 1 -q 8.8.8.8 1>/dev/null 2>&1
|
||||
if [ "$?" == "0" ]; then
|
||||
/etc/init.d/AdGuardHome reload
|
||||
/etc/init.d/AdGuardHome force_reload
|
||||
break
|
||||
fi
|
||||
sleep 5
|
||||
count=$((count+1))
|
||||
if [ $count -gt 18 ]; then
|
||||
/etc/init.d/AdGuardHome reload
|
||||
/etc/init.d/AdGuardHome force_reload
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
Loading…
Reference in New Issue
Block a user