diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua index daba814e6a..31cf0d0f06 100644 --- a/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/controller/AdGuardHome.lua @@ -14,7 +14,7 @@ entry({"admin", "services", "AdGuardHome", "getlog"}, call("get_log")) entry({"admin", "services", "AdGuardHome", "dodellog"}, call("do_dellog")) entry({"admin", "services", "AdGuardHome", "reloadconfig"}, call("reload_config")) entry({"admin", "services", "AdGuardHome", "gettemplateconfig"}, call("get_template_config")) -end +end function get_template_config() local b local d="" diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/base.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/base.lua index a5e8c3aa39..3bf49aaebb 100644 --- a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/base.lua +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/base.lua @@ -5,7 +5,7 @@ local m,s,o,o1 local fs=require"nixio.fs" local uci=require"luci.model.uci".cursor() local configpath=uci:get("AdGuardHome","AdGuardHome","configpath") or "/etc/AdGuardHome.yaml" -local binpath=uci:get("AdGuardHome","AdGuardHome","binpath") or "/usr/bin/AdGuardHome/AdGuardHome" +local binpath=uci:get("AdGuardHome","AdGuardHome","binpath") or "/usr/bin/AdGuardHome" httpport=uci:get("AdGuardHome","AdGuardHome","httpport") or "3000" m = Map("AdGuardHome", "AdGuard Home") m.description = translate("Free and open source, powerful network-wide ads & trackers blocking DNS server.") @@ -65,7 +65,7 @@ o.default = "none" o.optional = true ---- bin path o = s:option(Value, "binpath", translate("Bin Path"), translate("AdGuardHome Bin path if no bin will auto download")) -o.default = "/usr/bin/AdGuardHome/AdGuardHome" +o.default = "/usr/bin/AdGuardHome" o.datatype = "string" o.optional = false o.rmempty=false @@ -81,7 +81,7 @@ if fs.stat(value,"type")=="dir" then m.message ="error!bin path is a dir" end return nil -end +end return value end --- upx @@ -113,12 +113,12 @@ if fs.stat(value,"type")=="dir" then m.message ="error!config path is a dir" end return nil -end +end return value end ---- work dir o = s:option(Value, "workdir", translate("Work dir"), translate("AdGuardHome work dir include rules,audit log and database")) -o.default = "/usr/bin/AdGuardHome" +o.default = "/etc/AdGuardHome" o.datatype = "string" o.optional = false o.rmempty=false @@ -131,7 +131,7 @@ if fs.stat(value,"type")=="reg" then m.message ="error!work dir is a file" end return nil -end +end if string.sub(value, -1)=="/" then return string.sub(value, 1, -2) else @@ -153,14 +153,14 @@ if fs.stat(value,"type")=="dir" then m.message ="error!log file is a dir" end return nil -end +end return value end ---- debug o = s:option(Flag, "verbose", translate("Verbose log")) o.default = 0 o.optional = true ----- gfwlist +---- gfwlist local a=luci.sys.call("grep -m 1 -q programadd "..configpath) if (a==0) then a="Added" @@ -208,7 +208,7 @@ o = s:option(Flag, "waitonboot", translate("On boot when network ok restart")) o.default = 1 o.optional = true ---- backup workdir on shutdown -local workdir=uci:get("AdGuardHome","AdGuardHome","workdir") or "/usr/bin/AdGuardHome" +local workdir=uci:get("AdGuardHome","AdGuardHome","workdir") or "/etc/AdGuardHome" o = s:option(MultiValue, "backupfile", translate("Backup workdir files when shutdown")) o1 = s:option(Value, "backupwdpath", translate("Backup workdir path")) local name @@ -234,7 +234,7 @@ o.optional=false o.description=translate("Will be restore when workdir/data is empty") ----backup workdir path -o1.default = "/usr/bin/AdGuardHome" +o1.default = "/etc/AdGuardHome" o1.datatype = "string" o1.optional = false o1.validate=function(self, value) @@ -245,7 +245,7 @@ if fs.stat(value,"type")=="reg" then m.message ="error!backup dir is a file" end return nil -end +end if string.sub(value,-1)=="/" then return string.sub(value, 1, -2) else diff --git a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua index 9e2f996b20..ecf072bbc7 100644 --- a/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua +++ b/package/ctcgfw/luci-app-adguardhome/luasrc/model/cbi/AdGuardHome/manual.lua @@ -70,7 +70,7 @@ o.template = "AdGuardHome/yamleditor" if not fs.access(binpath) then o.description=translate("WARNING!!! no bin found apply config will not be test") end ---- log +--- log if (fs.access("/tmp/AdGuardHometmpconfig.yaml")) then local c=fs.readfile("/tmp/AdGuardHometest.log") if (c~="") then diff --git a/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome b/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome index ff8ce4afd7..d1646a0b70 100755 --- a/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome +++ b/package/ctcgfw/luci-app-adguardhome/root/etc/init.d/AdGuardHome @@ -62,7 +62,7 @@ set_iptable() local ipv6_server=$1 local tcp_server=$2 uci -q batch <<-EOF >/dev/null 2>&1 - delete firewall.AdGuardHome + delete firewall.AdGuardHome set firewall.AdGuardHome=include set firewall.AdGuardHome.type=script set firewall.AdGuardHome.path=/usr/share/AdGuardHome/firewall.start @@ -91,13 +91,12 @@ EOF fi ip6tables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $AdGuardHome_PORT >/dev/null 2>&1 done - } clear_iptable() { uci -q batch <<-EOF >/dev/null 2>&1 - delete firewall.AdGuardHome + delete firewall.AdGuardHome commit firewall EOF local OLD_PORT="$1" @@ -119,30 +118,33 @@ EOF ip6tables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1 ip6tables -t nat -D PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1 done - } service_triggers() { 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 + 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" + config_get binpath $CONFIGURATION binpath "/usr/bin/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="" @@ -206,11 +208,13 @@ use_port53() uci commit dhcp /etc/init.d/dnsmasq reload } + do_redirect() { config_load "${CONFIGURATION}" _do_redirect $1 } + _do_redirect() { local section="$CONFIGURATION" @@ -271,6 +275,7 @@ _do_redirect() use_port53 fi } + get_filesystem() { # print out path filesystem @@ -340,7 +345,7 @@ boot_service() { config_load "${CONFIGURATION}" config_get waitonboot $CONFIGURATION waitonboot "0" config_get_bool enabled $CONFIGURATION enabled 0 - config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome" + config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome" [ -f "$binpath" ] && start_service if [ "$enabled" == "1" ] && [ "$waitonboot" == "1" ]; then procd_open_instance "waitnet" @@ -358,16 +363,18 @@ testbackup(){ restore fi } + restore() { - config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" - config_get backupwdpath $CONFIGURATION backupwdpath "/usr/bin/AdGuardHome" + config_get workdir $CONFIGURATION workdir "/etc/AdGuardHome" + config_get backupwdpath $CONFIGURATION backupwdpath "/etc/AdGuardHome" cp -u -r -f $backupwdpath/data $workdir } + backup() { - config_get backupwdpath $CONFIGURATION backupwdpath "/usr/bin/AdGuardHome" + config_get backupwdpath $CONFIGURATION backupwdpath "/etc/AdGuardHome" mkdir -p $backupwdpath/data - config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" + config_get workdir $CONFIGURATION workdir "/etc/AdGuardHome" config_get backupfile $CONFIGURATION backupfile "" for one in $backupfile; do @@ -391,6 +398,7 @@ backup() { done done } + start_service() { # Reading config rm /var/run/AdGserverdis >/dev/null 2>&1 @@ -411,7 +419,7 @@ start_service() { return fi #what need to do before reload - config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" + config_get workdir $CONFIGURATION workdir "/etc/AdGuardHome" config_get backupfile $CONFIGURATION backupfile "" mkdir -p $workdir/data @@ -436,7 +444,7 @@ start_service() { fi fi local ADDITIONAL_ARGS="" - config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome" + config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome" mkdir -p ${binpath%/*} ADDITIONAL_ARGS="$ADDITIONAL_ARGS -c $configpath" @@ -448,7 +456,7 @@ start_service() { 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" @@ -492,6 +500,7 @@ start_service() { 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/AdGlucitest >/dev/null 2>&1 @@ -500,22 +509,23 @@ reload_service() } del_querylog(){ -local btarget=$(ls $backupwdpath/data | grep -F "querylog.json" | sort -r | head -n 1) -local wtarget=$(ls $workdir/data | grep -F "querylog.json" | sort -r | head -n 1) -if [ "$btarget"x == "$wtarget"x ]; then - [ -z "$btarget" ] && return 1 - rm -f $workdir/data/$wtarget - rm -f $backupwdpath/data/$btarget - return 0 -fi -if [ "$btarget" \> "$wtarget" ]; then - rm -f $backupwdpath/data/$btarget - return 0 -else - rm -f $workdir/data/$wtarget - return 0 -fi + local btarget=$(ls $backupwdpath/data | grep -F "querylog.json" | sort -r | head -n 1) + local wtarget=$(ls $workdir/data | grep -F "querylog.json" | sort -r | head -n 1) + if [ "$btarget"x == "$wtarget"x ]; then + [ -z "$btarget" ] && return 1 + rm -f $workdir/data/$wtarget + rm -f $backupwdpath/data/$btarget + return 0 + fi + if [ "$btarget" \> "$wtarget" ]; then + rm -f $backupwdpath/data/$btarget + return 0 + else + rm -f $workdir/data/$wtarget + return 0 + fi } + stop_service() { config_load "${CONFIGURATION}" @@ -530,16 +540,19 @@ stop_service() echo "AdGuardHome service disabled" touch /var/run/AdGserverdis } + boot() { rc_procd boot_service "$@" if eval "type service_started" 2>/dev/null >/dev/null; then service_started fi } + test_crontab(){ -config_load "${CONFIGURATION}" -do_crontab + config_load "${CONFIGURATION}" + do_crontab } + do_crontab(){ config_get_bool enabled $CONFIGURATION enabled 0 config_get crontab $CONFIGURATION crontab "" @@ -550,16 +563,16 @@ do_crontab(){ default="30 3 * * * /usr/share/AdGuardHome/update_core.sh 2>&1" [ "$enabled" == "0" ] || [ "${crontab//autoupdate/}" == "$crontab" ] && cronenable=0 || cronenable=1 crontab_editor - - config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" - config_get lastworkdir $CONFIGURATION lastworkdir "/usr/bin/AdGuardHome" + + config_get workdir $CONFIGURATION workdir "/etc/AdGuardHome" + config_get lastworkdir $CONFIGURATION lastworkdir "/etc/AdGuardHome" 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 - + config_get logfile $CONFIGURATION logfile "" config_get lastlogfile $CONFIGURATION lastlogfile "" findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* \$(uci get AdGuardHome.AdGuardHome.logfile)" @@ -568,7 +581,7 @@ do_crontab(){ [ "$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 - + findstr="/usr/share/AdGuardHome/addhost.sh" default="0 * * * * /usr/share/AdGuardHome/addhost.sh" [ "$enabled" == "0" ] || [ "${crontab//autohost/}" == "$crontab" ] && cronenable=0 || cronenable=1 @@ -582,6 +595,7 @@ do_crontab(){ [ "$cronreload" -gt 0 ] && /etc/init.d/cron restart #[ "$commit" -gt 0 ] && uci commit AdGuardHome } + crontab_editor(){ #usage input: #findstr= @@ -591,7 +605,7 @@ crontab_editor(){ #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="" + [ -n "$replace" ] && [ -n "$line" ] && eval testline="\${line//$replace}" && [ "$testline" != "$line" ] && line="$testline" && reload="1" && replace="" if [ "${line:0:1}" != "#" ]; then if [ $cronenable -eq 1 ]; then [ -z "$line" ] && line="$default" && reload="1" @@ -615,5 +629,4 @@ crontab_editor(){ echo "$line" >> $CRON_FILE fi fi - } diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/addhost.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/addhost.sh index 2461b74dd2..6c6b7b7691 100755 --- a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/addhost.sh +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/addhost.sh @@ -1,4 +1,5 @@ #!/bin/sh + checkmd5(){ local nowmd5=$(md5sum /etc/hosts) nowmd5=${nowmd5%% *} @@ -9,6 +10,7 @@ if [ "$nowmd5" != "$lastmd5" ]; then [ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload fi } + [ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' /etc/hosts && checkmd5 "$2" && exit 0 /usr/bin/awk 'BEGIN{ while ((getline < "/tmp/dhcp.leases") > 0) @@ -30,4 +32,4 @@ else cat /tmp/tmphost >> /etc/hosts fi rm /tmp/tmphost -checkmd5 "$2" \ No newline at end of file +checkmd5 "$2" diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/getsyslog.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/getsyslog.sh index c95cc077b3..908bdf6318 100755 --- a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/getsyslog.sh +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/getsyslog.sh @@ -1,4 +1,5 @@ #!/bin/sh + PATH="/usr/sbin:/usr/bin:/sbin:/bin" logread -e AdGuardHome > /tmp/AdGuardHometmp.log logread -e AdGuardHome -f >> /tmp/AdGuardHometmp.log & @@ -16,4 +17,4 @@ do else echo "0">/var/run/AdGuardHomesyslog fi -done \ No newline at end of file +done diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/gfw2adg.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/gfw2adg.sh index 386d4307a8..a3add84e8b 100755 --- a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/gfw2adg.sh +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/gfw2adg.sh @@ -1,5 +1,7 @@ #!/bin/sh + PATH="/usr/sbin:/usr/bin:/sbin:/bin" + checkmd5(){ local nowmd5=$(md5sum /tmp/adguard.list 2>/dev/null) nowmd5=${nowmd5%% *} @@ -10,6 +12,7 @@ if [ "$nowmd5" != "$lastmd5" ]; then [ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload fi } + configpath=$(uci get AdGuardHome.AdGuardHome.configpath 2>/dev/null) [ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' $configpath && checkmd5 "$2" && exit 0 gfwupstream=$(uci get AdGuardHome.AdGuardHome.gfwupstream 2>/dev/null) @@ -83,4 +86,4 @@ else sed -i '/upstream_dns:/'r/tmp/adguard.list $configpath fi checkmd5 "$2" -rm -f /tmp/gfwlist.txt /tmp/adguard.list \ No newline at end of file +rm -f /tmp/gfwlist.txt /tmp/adguard.list diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/tailto.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/tailto.sh index ab70e3a6ef..9ccc21903a 100755 --- a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/tailto.sh +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/tailto.sh @@ -1,4 +1,5 @@ #!/bin/sh + tail -n $1 "$2" > /var/run/tailtmp cat /var/run/tailtmp > "$2" -rm /var/run/tailtmp \ No newline at end of file +rm /var/run/tailtmp diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/update_core.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/update_core.sh index 2469919e31..74ba7268d5 100755 --- a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/update_core.sh +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/update_core.sh @@ -1,4 +1,5 @@ #!/bin/bash + PATH="/usr/sbin:/usr/bin:/sbin:/bin" binpath=$(uci get AdGuardHome.AdGuardHome.binpath) if [ -z "$binpath" ]; then @@ -21,6 +22,7 @@ check_wgetcurl(){ [ "$1" == "1" ] && (opkg install curl ; check_wgetcurl 2 ; return) echo error curl and wget && EXIT 1 } + check_latest_version(){ 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)" @@ -29,78 +31,79 @@ check_latest_version(){ fi 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}." + echo -e "Local version: ${now_ver}., cloud version: ${latest_ver}." doupdate_core else - echo -e "\nLocal version: ${now_ver}, cloud version: ${latest_ver}." - echo -e "You're already using the latest version." - if [ ! -z "$upxflag" ]; then - filesize=$(ls -l $binpath | awk '{ print $5 }') - if [ $filesize -gt 8000000 ]; then - echo -e "start upx may take a long time" - doupx - mkdir -p "/tmp/AdGuardHomeupdate/AdGuardHome" >/dev/null 2>&1 - 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 nobackup - rm $binpath - mv -f /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} $binpath - /etc/init.d/AdGuardHome start - echo -e "finished" - fi + echo -e "\nLocal version: ${now_ver}, cloud version: ${latest_ver}." + echo -e "You're already using the latest version." + if [ ! -z "$upxflag" ]; then + filesize=$(ls -l $binpath | awk '{ print $5 }') + if [ $filesize -gt 8000000 ]; then + echo -e "start upx may take a long time" + doupx + mkdir -p "/tmp/AdGuardHomeupdate/AdGuardHome" >/dev/null 2>&1 + 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 nobackup + rm $binpath + mv -f /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} $binpath + /etc/init.d/AdGuardHome start + echo -e "finished" fi - EXIT 0 + fi + EXIT 0 fi } + doupx(){ Archt="$(opkg info kernel | grep Architecture | awk -F "[ _]" '{print($2)}')" case $Archt in "i386") - Arch="i386" - ;; + Arch="i386" + ;; "i686") - Arch="i386" - echo -e "i686 use $Arch may have bug" - ;; + Arch="i386" + echo -e "i686 use $Arch may have bug" + ;; "x86") - Arch="amd64" - ;; + Arch="amd64" + ;; "mipsel") - Arch="mipsel" - ;; + Arch="mipsel" + ;; "mips64el") - Arch="mips64el" - Arch="mipsel" - echo -e "mips64el use $Arch may have bug" - ;; + Arch="mips64el" + Arch="mipsel" + echo -e "mips64el use $Arch may have bug" + ;; "mips") - Arch="mips" - ;; + Arch="mips" + ;; "mips64") - Arch="mips64" - Arch="mips" - echo -e "mips64 use $Arch may have bug" - ;; + Arch="mips64" + Arch="mips" + echo -e "mips64 use $Arch may have bug" + ;; "arm") - Arch="arm" - ;; + Arch="arm" + ;; "armeb") - Arch="armeb" - ;; + Arch="armeb" + ;; "aarch64") - Arch="arm64" - ;; + Arch="arm64" + ;; "powerpc") - Arch="powerpc" - ;; + Arch="powerpc" + ;; "powerpc64") - Arch="powerpc64" - ;; + Arch="powerpc64" + ;; *) - echo -e "error not support $Archt if you can use offical release please issue a bug" - EXIT 1 - ;; + echo -e "error not support $Archt if you can use offical release please issue a bug" + EXIT 1 + ;; esac 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 @@ -109,64 +112,65 @@ doupx(){ 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 - echo -e "Failed to download upx." + echo -e "Failed to download upx." EXIT 1 fi rm /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz } + doupdate_core(){ - echo -e "Updating core..." + echo -e "Updating core..." mkdir -p "/tmp/AdGuardHomeupdate" rm -rf /tmp/AdGuardHomeupdate/* >/dev/null 2>&1 Archt="$(opkg info kernel | grep Architecture | awk -F "[ _]" '{print($2)}')" case $Archt in "i386") - Arch="386" - ;; + Arch="386" + ;; "i686") - Arch="386" - ;; + Arch="386" + ;; "x86") - Arch="amd64" - ;; + Arch="amd64" + ;; "mipsel") - Arch="mipsle" - ;; + Arch="mipsle" + ;; "mips64el") - Arch="mips64le" - Arch="mipsle" - echo -e "mips64el use $Arch may have bug" - ;; + Arch="mips64le" + Arch="mipsle" + echo -e "mips64el use $Arch may have bug" + ;; "mips") - Arch="mips" - ;; + Arch="mips" + ;; "mips64") - Arch="mips64" - Arch="mips" - echo -e "mips64 use $Arch may have bug" - ;; + Arch="mips64" + Arch="mips" + echo -e "mips64 use $Arch may have bug" + ;; "arm") - Arch="arm" - ;; + Arch="arm" + ;; "aarch64") - Arch="arm64" - ;; + Arch="arm64" + ;; "powerpc") - Arch="ppc" - echo -e "error not support $Archt" - EXIT 1 - ;; + Arch="ppc" + echo -e "error not support $Archt" + EXIT 1 + ;; "powerpc64") - Arch="ppc64" - echo -e "error not support $Archt" - EXIT 1 - ;; + Arch="ppc64" + echo -e "error not support $Archt" + EXIT 1 + ;; *) - echo -e "error not support $Archt if you can use offical release please issue a bug" - EXIT 1 - ;; + echo -e "error not support $Archt if you can use offical release please issue a bug" + EXIT 1 + ;; esac - echo -e "start download" + echo -e "start download" grep -v "^#" /usr/share/AdGuardHome/links.txt >/tmp/run/AdHlinks.txt while read link do @@ -178,14 +182,14 @@ doupdate_core(){ else local success="1" break - fi + fi done < "/tmp/run/AdHlinks.txt" rm /tmp/run/AdHlinks.txt [ -z "$success" ] && echo "no download success" && EXIT 1 if [ "${link##*.}" == "gz" ]; then tar -zxf "/tmp/AdGuardHomeupdate/${link##*/}" -C "/tmp/AdGuardHomeupdate/" if [ ! -e "/tmp/AdGuardHomeupdate/AdGuardHome" ]; then - echo -e "Failed to download core." + echo -e "Failed to download core." rm -rf "/tmp/AdGuardHomeupdate" >/dev/null 2>&1 EXIT 1 fi @@ -194,34 +198,35 @@ doupdate_core(){ downloadbin="/tmp/AdGuardHomeupdate/${link##*/}" fi chmod 755 $downloadbin - echo -e "download success start copy" + echo -e "download success start copy" if [ -n "$upxflag" ]; then - echo -e "start upx may take a long time" + echo -e "start upx may take a long time" doupx /tmp/upx-${upx_latest_ver}-${Arch}_linux/upx $upxflag $downloadbin rm -rf /tmp/upx-${upx_latest_ver}-${Arch}_linux fi - echo -e "start copy" + echo -e "start copy" /etc/init.d/AdGuardHome stop nobackup rm "$binpath" mv -f "$downloadbin" "$binpath" if [ "$?" == "1" ]; then - echo "mv failed maybe not enough space please use upx or change bin to /tmp/AdGuardHome" + echo "mv failed maybe not enough space please use upx or change bin to /tmp/AdGuardHome" EXIT 1 fi /etc/init.d/AdGuardHome start rm -rf "/tmp/AdGuardHomeupdate" >/dev/null 2>&1 - echo -e "Succeeded in updating core." - echo -e "Local version: ${latest_ver}, cloud version: ${latest_ver}.\n" + echo -e "Succeeded in updating core." + echo -e "Local version: ${latest_ver}, cloud version: ${latest_ver}.\n" EXIT 0 } + EXIT(){ rm /var/run/update_core 2>/dev/null [ "$1" != "0" ] && touch /var/run/update_core_error exit $1 } + main(){ - check_if_already_running check_latest_version $1 } diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/waitnet.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/waitnet.sh index a79a8bac87..c7745e101d 100755 --- a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/waitnet.sh +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/waitnet.sh @@ -1,4 +1,5 @@ #!/bin/sh + PATH="/usr/sbin:/usr/bin:/sbin:/bin" count=0 while : @@ -31,4 +32,4 @@ do break fi done -return 0 \ No newline at end of file +return 0 diff --git a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/watchconfig.sh b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/watchconfig.sh index c5252250b6..61ba09de75 100755 --- a/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/watchconfig.sh +++ b/package/ctcgfw/luci-app-adguardhome/root/usr/share/AdGuardHome/watchconfig.sh @@ -1,4 +1,5 @@ #!/bin/sh + PATH="/usr/sbin:/usr/bin:/sbin:/bin" configpath=$(uci get AdGuardHome.AdGuardHome.configpath) while : @@ -9,4 +10,4 @@ do break fi done -return 0 \ No newline at end of file +return 0