luci-app-adguardhome: fix path error if core download from the Internet

Signed-off-by: Tianling Shen <cnsztl@project-openwrt.eu.org>
This commit is contained in:
AmadeusGhost 2021-02-14 12:20:05 +08:00 committed by Tianling Shen
parent 1706e45bc7
commit d087251fed
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
11 changed files with 184 additions and 157 deletions

View File

@ -5,7 +5,7 @@ local m,s,o,o1
local fs=require"nixio.fs" local fs=require"nixio.fs"
local uci=require"luci.model.uci".cursor() local uci=require"luci.model.uci".cursor()
local configpath=uci:get("AdGuardHome","AdGuardHome","configpath") or "/etc/AdGuardHome.yaml" 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" httpport=uci:get("AdGuardHome","AdGuardHome","httpport") or "3000"
m = Map("AdGuardHome", "AdGuard Home") m = Map("AdGuardHome", "AdGuard Home")
m.description = translate("Free and open source, powerful network-wide ads & trackers blocking DNS server.") 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 o.optional = true
---- bin path ---- bin path
o = s:option(Value, "binpath", translate("Bin Path"), translate("AdGuardHome Bin path if no bin will auto download")) 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.datatype = "string"
o.optional = false o.optional = false
o.rmempty=false o.rmempty=false
@ -118,7 +118,7 @@ return value
end end
---- work dir ---- work dir
o = s:option(Value, "workdir", translate("Work dir"), translate("AdGuardHome work dir include rules,audit log and database")) 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.datatype = "string"
o.optional = false o.optional = false
o.rmempty=false o.rmempty=false
@ -208,7 +208,7 @@ o = s:option(Flag, "waitonboot", translate("On boot when network ok restart"))
o.default = 1 o.default = 1
o.optional = true o.optional = true
---- backup workdir on shutdown ---- 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")) o = s:option(MultiValue, "backupfile", translate("Backup workdir files when shutdown"))
o1 = s:option(Value, "backupwdpath", translate("Backup workdir path")) o1 = s:option(Value, "backupwdpath", translate("Backup workdir path"))
local name local name
@ -234,7 +234,7 @@ o.optional=false
o.description=translate("Will be restore when workdir/data is empty") o.description=translate("Will be restore when workdir/data is empty")
----backup workdir path ----backup workdir path
o1.default = "/usr/bin/AdGuardHome" o1.default = "/etc/AdGuardHome"
o1.datatype = "string" o1.datatype = "string"
o1.optional = false o1.optional = false
o1.validate=function(self, value) o1.validate=function(self, value)

View File

@ -62,7 +62,7 @@ set_iptable()
local ipv6_server=$1 local ipv6_server=$1
local tcp_server=$2 local tcp_server=$2
uci -q batch <<-EOF >/dev/null 2>&1 uci -q batch <<-EOF >/dev/null 2>&1
delete firewall.AdGuardHome delete firewall.AdGuardHome
set firewall.AdGuardHome=include set firewall.AdGuardHome=include
set firewall.AdGuardHome.type=script set firewall.AdGuardHome.type=script
set firewall.AdGuardHome.path=/usr/share/AdGuardHome/firewall.start set firewall.AdGuardHome.path=/usr/share/AdGuardHome/firewall.start
@ -91,13 +91,12 @@ EOF
fi fi
ip6tables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $AdGuardHome_PORT >/dev/null 2>&1 ip6tables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $AdGuardHome_PORT >/dev/null 2>&1
done done
} }
clear_iptable() clear_iptable()
{ {
uci -q batch <<-EOF >/dev/null 2>&1 uci -q batch <<-EOF >/dev/null 2>&1
delete firewall.AdGuardHome delete firewall.AdGuardHome
commit firewall commit firewall
EOF EOF
local OLD_PORT="$1" 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 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 ip6tables -t nat -D PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1
done done
} }
service_triggers() { service_triggers() {
procd_add_reload_trigger "$CONFIGURATION" procd_add_reload_trigger "$CONFIGURATION"
[ "$(uci get AdGuardHome.AdGuardHome.redirect)" == "redirect" ] && procd_add_reload_trigger firewall [ "$(uci get AdGuardHome.AdGuardHome.redirect)" == "redirect" ] && procd_add_reload_trigger firewall
} }
isrunning(){ isrunning(){
config_load "${CONFIGURATION}" config_load "${CONFIGURATION}"
_isrunning _isrunning
local r=$? local r=$?
([ "$r" == "0" ] && echo "running") || ([ "$r" == "1" ] && echo "not run" ) || echo "no bin" ([ "$r" == "0" ] && echo "running") || ([ "$r" == "1" ] && echo "not run" ) || echo "no bin"
return $r return $r
} }
_isrunning(){ _isrunning(){
config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome" config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome"
[ ! -f "$binpath" ] && return 2 [ ! -f "$binpath" ] && return 2
pgrep $binpath 2>&1 >/dev/null && return 0 pgrep $binpath 2>&1 >/dev/null && return 0
return 1 return 1
} }
force_reload(){ force_reload(){
config_load "${CONFIGURATION}" config_load "${CONFIGURATION}"
_isrunning && procd_send_signal "$CONFIGURATION" || start _isrunning && procd_send_signal "$CONFIGURATION" || start
} }
get_tz() get_tz()
{ {
SET_TZ="" SET_TZ=""
@ -206,11 +208,13 @@ use_port53()
uci commit dhcp uci commit dhcp
/etc/init.d/dnsmasq reload /etc/init.d/dnsmasq reload
} }
do_redirect() do_redirect()
{ {
config_load "${CONFIGURATION}" config_load "${CONFIGURATION}"
_do_redirect $1 _do_redirect $1
} }
_do_redirect() _do_redirect()
{ {
local section="$CONFIGURATION" local section="$CONFIGURATION"
@ -271,6 +275,7 @@ _do_redirect()
use_port53 use_port53
fi fi
} }
get_filesystem() get_filesystem()
{ {
# print out path filesystem # print out path filesystem
@ -340,7 +345,7 @@ boot_service() {
config_load "${CONFIGURATION}" config_load "${CONFIGURATION}"
config_get waitonboot $CONFIGURATION waitonboot "0" config_get waitonboot $CONFIGURATION waitonboot "0"
config_get_bool enabled $CONFIGURATION enabled 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 [ -f "$binpath" ] && start_service
if [ "$enabled" == "1" ] && [ "$waitonboot" == "1" ]; then if [ "$enabled" == "1" ] && [ "$waitonboot" == "1" ]; then
procd_open_instance "waitnet" procd_open_instance "waitnet"
@ -358,16 +363,18 @@ testbackup(){
restore restore
fi fi
} }
restore() restore()
{ {
config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" config_get workdir $CONFIGURATION workdir "/etc/AdGuardHome"
config_get backupwdpath $CONFIGURATION backupwdpath "/usr/bin/AdGuardHome" config_get backupwdpath $CONFIGURATION backupwdpath "/etc/AdGuardHome"
cp -u -r -f $backupwdpath/data $workdir cp -u -r -f $backupwdpath/data $workdir
} }
backup() { backup() {
config_get backupwdpath $CONFIGURATION backupwdpath "/usr/bin/AdGuardHome" config_get backupwdpath $CONFIGURATION backupwdpath "/etc/AdGuardHome"
mkdir -p $backupwdpath/data mkdir -p $backupwdpath/data
config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" config_get workdir $CONFIGURATION workdir "/etc/AdGuardHome"
config_get backupfile $CONFIGURATION backupfile "" config_get backupfile $CONFIGURATION backupfile ""
for one in $backupfile; for one in $backupfile;
do do
@ -391,6 +398,7 @@ backup() {
done done
done done
} }
start_service() { start_service() {
# Reading config # Reading config
rm /var/run/AdGserverdis >/dev/null 2>&1 rm /var/run/AdGserverdis >/dev/null 2>&1
@ -411,7 +419,7 @@ start_service() {
return return
fi fi
#what need to do before reload #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 "" config_get backupfile $CONFIGURATION backupfile ""
mkdir -p $workdir/data mkdir -p $workdir/data
@ -436,7 +444,7 @@ start_service() {
fi fi
fi fi
local ADDITIONAL_ARGS="" local ADDITIONAL_ARGS=""
config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome/AdGuardHome" config_get binpath $CONFIGURATION binpath "/usr/bin/AdGuardHome"
mkdir -p ${binpath%/*} mkdir -p ${binpath%/*}
ADDITIONAL_ARGS="$ADDITIONAL_ARGS -c $configpath" ADDITIONAL_ARGS="$ADDITIONAL_ARGS -c $configpath"
@ -492,6 +500,7 @@ start_service() {
echo "luci enable switch=$enabled" echo "luci enable switch=$enabled"
(sleep 10 && [ -z "$(pgrep $binpath)" ] && logger "AdGuardHome" "no process in 10s cancel redirect" && _do_redirect 0 )& (sleep 10 && [ -z "$(pgrep $binpath)" ] && logger "AdGuardHome" "no process in 10s cancel redirect" && _do_redirect 0 )&
} }
reload_service() reload_service()
{ {
rm /var/run/AdGlucitest >/dev/null 2>&1 rm /var/run/AdGlucitest >/dev/null 2>&1
@ -500,22 +509,23 @@ reload_service()
} }
del_querylog(){ del_querylog(){
local btarget=$(ls $backupwdpath/data | grep -F "querylog.json" | sort -r | head -n 1) 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) local wtarget=$(ls $workdir/data | grep -F "querylog.json" | sort -r | head -n 1)
if [ "$btarget"x == "$wtarget"x ]; then if [ "$btarget"x == "$wtarget"x ]; then
[ -z "$btarget" ] && return 1 [ -z "$btarget" ] && return 1
rm -f $workdir/data/$wtarget rm -f $workdir/data/$wtarget
rm -f $backupwdpath/data/$btarget rm -f $backupwdpath/data/$btarget
return 0 return 0
fi fi
if [ "$btarget" \> "$wtarget" ]; then if [ "$btarget" \> "$wtarget" ]; then
rm -f $backupwdpath/data/$btarget rm -f $backupwdpath/data/$btarget
return 0 return 0
else else
rm -f $workdir/data/$wtarget rm -f $workdir/data/$wtarget
return 0 return 0
fi fi
} }
stop_service() stop_service()
{ {
config_load "${CONFIGURATION}" config_load "${CONFIGURATION}"
@ -530,16 +540,19 @@ stop_service()
echo "AdGuardHome service disabled" echo "AdGuardHome service disabled"
touch /var/run/AdGserverdis touch /var/run/AdGserverdis
} }
boot() { boot() {
rc_procd boot_service "$@" rc_procd boot_service "$@"
if eval "type service_started" 2>/dev/null >/dev/null; then if eval "type service_started" 2>/dev/null >/dev/null; then
service_started service_started
fi fi
} }
test_crontab(){ test_crontab(){
config_load "${CONFIGURATION}" config_load "${CONFIGURATION}"
do_crontab do_crontab
} }
do_crontab(){ do_crontab(){
config_get_bool enabled $CONFIGURATION enabled 0 config_get_bool enabled $CONFIGURATION enabled 0
config_get crontab $CONFIGURATION crontab "" config_get crontab $CONFIGURATION crontab ""
@ -551,8 +564,8 @@ do_crontab(){
[ "$enabled" == "0" ] || [ "${crontab//autoupdate/}" == "$crontab" ] && cronenable=0 || cronenable=1 [ "$enabled" == "0" ] || [ "${crontab//autoupdate/}" == "$crontab" ] && cronenable=0 || cronenable=1
crontab_editor crontab_editor
config_get workdir $CONFIGURATION workdir "/usr/bin/AdGuardHome" config_get workdir $CONFIGURATION workdir "/etc/AdGuardHome"
config_get lastworkdir $CONFIGURATION lastworkdir "/usr/bin/AdGuardHome" config_get lastworkdir $CONFIGURATION lastworkdir "/etc/AdGuardHome"
findstr="/usr/share/AdGuardHome/tailto.sh [0-9]* \$(uci get AdGuardHome.AdGuardHome.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//\//\\/}" #[ -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" default="0 * * * * /usr/share/AdGuardHome/tailto.sh 2000 \$(uci get AdGuardHome.AdGuardHome.workdir)/data/querylog.json"
@ -582,6 +595,7 @@ do_crontab(){
[ "$cronreload" -gt 0 ] && /etc/init.d/cron restart [ "$cronreload" -gt 0 ] && /etc/init.d/cron restart
#[ "$commit" -gt 0 ] && uci commit AdGuardHome #[ "$commit" -gt 0 ] && uci commit AdGuardHome
} }
crontab_editor(){ crontab_editor(){
#usage input: #usage input:
#findstr= #findstr=
@ -615,5 +629,4 @@ crontab_editor(){
echo "$line" >> $CRON_FILE echo "$line" >> $CRON_FILE
fi fi
fi fi
} }

View File

@ -1,4 +1,5 @@
#!/bin/sh #!/bin/sh
checkmd5(){ checkmd5(){
local nowmd5=$(md5sum /etc/hosts) local nowmd5=$(md5sum /etc/hosts)
nowmd5=${nowmd5%% *} nowmd5=${nowmd5%% *}
@ -9,6 +10,7 @@ if [ "$nowmd5" != "$lastmd5" ]; then
[ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload [ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload
fi fi
} }
[ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' /etc/hosts && checkmd5 "$2" && exit 0 [ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' /etc/hosts && checkmd5 "$2" && exit 0
/usr/bin/awk 'BEGIN{ /usr/bin/awk 'BEGIN{
while ((getline < "/tmp/dhcp.leases") > 0) while ((getline < "/tmp/dhcp.leases") > 0)

View File

@ -1,4 +1,5 @@
#!/bin/sh #!/bin/sh
PATH="/usr/sbin:/usr/bin:/sbin:/bin" PATH="/usr/sbin:/usr/bin:/sbin:/bin"
logread -e AdGuardHome > /tmp/AdGuardHometmp.log logread -e AdGuardHome > /tmp/AdGuardHometmp.log
logread -e AdGuardHome -f >> /tmp/AdGuardHometmp.log & logread -e AdGuardHome -f >> /tmp/AdGuardHometmp.log &

View File

@ -1,5 +1,7 @@
#!/bin/sh #!/bin/sh
PATH="/usr/sbin:/usr/bin:/sbin:/bin" PATH="/usr/sbin:/usr/bin:/sbin:/bin"
checkmd5(){ checkmd5(){
local nowmd5=$(md5sum /tmp/adguard.list 2>/dev/null) local nowmd5=$(md5sum /tmp/adguard.list 2>/dev/null)
nowmd5=${nowmd5%% *} nowmd5=${nowmd5%% *}
@ -10,6 +12,7 @@ if [ "$nowmd5" != "$lastmd5" ]; then
[ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload [ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload
fi fi
} }
configpath=$(uci get AdGuardHome.AdGuardHome.configpath 2>/dev/null) configpath=$(uci get AdGuardHome.AdGuardHome.configpath 2>/dev/null)
[ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' $configpath && checkmd5 "$2" && exit 0 [ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' $configpath && checkmd5 "$2" && exit 0
gfwupstream=$(uci get AdGuardHome.AdGuardHome.gfwupstream 2>/dev/null) gfwupstream=$(uci get AdGuardHome.AdGuardHome.gfwupstream 2>/dev/null)

View File

@ -1,4 +1,5 @@
#!/bin/sh #!/bin/sh
tail -n $1 "$2" > /var/run/tailtmp tail -n $1 "$2" > /var/run/tailtmp
cat /var/run/tailtmp > "$2" cat /var/run/tailtmp > "$2"
rm /var/run/tailtmp rm /var/run/tailtmp

View File

@ -1,4 +1,5 @@
#!/bin/bash #!/bin/bash
PATH="/usr/sbin:/usr/bin:/sbin:/bin" PATH="/usr/sbin:/usr/bin:/sbin:/bin"
binpath=$(uci get AdGuardHome.AdGuardHome.binpath) binpath=$(uci get AdGuardHome.AdGuardHome.binpath)
if [ -z "$binpath" ]; then if [ -z "$binpath" ]; then
@ -21,6 +22,7 @@ check_wgetcurl(){
[ "$1" == "1" ] && (opkg install curl ; check_wgetcurl 2 ; return) [ "$1" == "1" ] && (opkg install curl ; check_wgetcurl 2 ; return)
echo error curl and wget && EXIT 1 echo error curl and wget && EXIT 1
} }
check_latest_version(){ check_latest_version(){
check_wgetcurl 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)" 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)"
@ -32,75 +34,76 @@ check_latest_version(){
echo -e "Local version: ${now_ver}., cloud version: ${latest_ver}." echo -e "Local version: ${now_ver}., cloud version: ${latest_ver}."
doupdate_core doupdate_core
else else
echo -e "\nLocal version: ${now_ver}, cloud version: ${latest_ver}." echo -e "\nLocal version: ${now_ver}, cloud version: ${latest_ver}."
echo -e "You're already using the latest version." echo -e "You're already using the latest version."
if [ ! -z "$upxflag" ]; then if [ ! -z "$upxflag" ]; then
filesize=$(ls -l $binpath | awk '{ print $5 }') filesize=$(ls -l $binpath | awk '{ print $5 }')
if [ $filesize -gt 8000000 ]; then if [ $filesize -gt 8000000 ]; then
echo -e "start upx may take a long time" echo -e "start upx may take a long time"
doupx doupx
mkdir -p "/tmp/AdGuardHomeupdate/AdGuardHome" >/dev/null 2>&1 mkdir -p "/tmp/AdGuardHomeupdate/AdGuardHome" >/dev/null 2>&1
rm -fr /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} rm -fr /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/}
/tmp/upx-${upx_latest_ver}-${Arch}_linux/upx $upxflag $binpath -o /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 rm -rf /tmp/upx-${upx_latest_ver}-${Arch}_linux
/etc/init.d/AdGuardHome stop nobackup /etc/init.d/AdGuardHome stop nobackup
rm $binpath rm $binpath
mv -f /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} $binpath mv -f /tmp/AdGuardHomeupdate/AdGuardHome/${binpath##*/} $binpath
/etc/init.d/AdGuardHome start /etc/init.d/AdGuardHome start
echo -e "finished" echo -e "finished"
fi
fi fi
EXIT 0 fi
EXIT 0
fi fi
} }
doupx(){ doupx(){
Archt="$(opkg info kernel | grep Architecture | awk -F "[ _]" '{print($2)}')" Archt="$(opkg info kernel | grep Architecture | awk -F "[ _]" '{print($2)}')"
case $Archt in case $Archt in
"i386") "i386")
Arch="i386" Arch="i386"
;; ;;
"i686") "i686")
Arch="i386" Arch="i386"
echo -e "i686 use $Arch may have bug" echo -e "i686 use $Arch may have bug"
;; ;;
"x86") "x86")
Arch="amd64" Arch="amd64"
;; ;;
"mipsel") "mipsel")
Arch="mipsel" Arch="mipsel"
;; ;;
"mips64el") "mips64el")
Arch="mips64el" Arch="mips64el"
Arch="mipsel" Arch="mipsel"
echo -e "mips64el use $Arch may have bug" echo -e "mips64el use $Arch may have bug"
;; ;;
"mips") "mips")
Arch="mips" Arch="mips"
;; ;;
"mips64") "mips64")
Arch="mips64" Arch="mips64"
Arch="mips" Arch="mips"
echo -e "mips64 use $Arch may have bug" echo -e "mips64 use $Arch may have bug"
;; ;;
"arm") "arm")
Arch="arm" Arch="arm"
;; ;;
"armeb") "armeb")
Arch="armeb" Arch="armeb"
;; ;;
"aarch64") "aarch64")
Arch="arm64" Arch="arm64"
;; ;;
"powerpc") "powerpc")
Arch="powerpc" Arch="powerpc"
;; ;;
"powerpc64") "powerpc64")
Arch="powerpc64" Arch="powerpc64"
;; ;;
*) *)
echo -e "error not support $Archt if you can use offical release please issue a bug" echo -e "error not support $Archt if you can use offical release please issue a bug"
EXIT 1 EXIT 1
;; ;;
esac 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)" 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 $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
@ -114,6 +117,7 @@ doupx(){
fi fi
rm /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz rm /tmp/upx-${upx_latest_ver}-${Arch}_linux.tar.xz
} }
doupdate_core(){ doupdate_core(){
echo -e "Updating core..." echo -e "Updating core..."
mkdir -p "/tmp/AdGuardHomeupdate" mkdir -p "/tmp/AdGuardHomeupdate"
@ -121,50 +125,50 @@ doupdate_core(){
Archt="$(opkg info kernel | grep Architecture | awk -F "[ _]" '{print($2)}')" Archt="$(opkg info kernel | grep Architecture | awk -F "[ _]" '{print($2)}')"
case $Archt in case $Archt in
"i386") "i386")
Arch="386" Arch="386"
;; ;;
"i686") "i686")
Arch="386" Arch="386"
;; ;;
"x86") "x86")
Arch="amd64" Arch="amd64"
;; ;;
"mipsel") "mipsel")
Arch="mipsle" Arch="mipsle"
;; ;;
"mips64el") "mips64el")
Arch="mips64le" Arch="mips64le"
Arch="mipsle" Arch="mipsle"
echo -e "mips64el use $Arch may have bug" echo -e "mips64el use $Arch may have bug"
;; ;;
"mips") "mips")
Arch="mips" Arch="mips"
;; ;;
"mips64") "mips64")
Arch="mips64" Arch="mips64"
Arch="mips" Arch="mips"
echo -e "mips64 use $Arch may have bug" echo -e "mips64 use $Arch may have bug"
;; ;;
"arm") "arm")
Arch="arm" Arch="arm"
;; ;;
"aarch64") "aarch64")
Arch="arm64" Arch="arm64"
;; ;;
"powerpc") "powerpc")
Arch="ppc" Arch="ppc"
echo -e "error not support $Archt" echo -e "error not support $Archt"
EXIT 1 EXIT 1
;; ;;
"powerpc64") "powerpc64")
Arch="ppc64" Arch="ppc64"
echo -e "error not support $Archt" echo -e "error not support $Archt"
EXIT 1 EXIT 1
;; ;;
*) *)
echo -e "error not support $Archt if you can use offical release please issue a bug" echo -e "error not support $Archt if you can use offical release please issue a bug"
EXIT 1 EXIT 1
;; ;;
esac esac
echo -e "start download" echo -e "start download"
grep -v "^#" /usr/share/AdGuardHome/links.txt >/tmp/run/AdHlinks.txt grep -v "^#" /usr/share/AdGuardHome/links.txt >/tmp/run/AdHlinks.txt
@ -215,13 +219,14 @@ doupdate_core(){
echo -e "Local version: ${latest_ver}, cloud version: ${latest_ver}.\n" echo -e "Local version: ${latest_ver}, cloud version: ${latest_ver}.\n"
EXIT 0 EXIT 0
} }
EXIT(){ EXIT(){
rm /var/run/update_core 2>/dev/null rm /var/run/update_core 2>/dev/null
[ "$1" != "0" ] && touch /var/run/update_core_error [ "$1" != "0" ] && touch /var/run/update_core_error
exit $1 exit $1
} }
main(){
main(){
check_if_already_running check_if_already_running
check_latest_version $1 check_latest_version $1
} }

View File

@ -1,4 +1,5 @@
#!/bin/sh #!/bin/sh
PATH="/usr/sbin:/usr/bin:/sbin:/bin" PATH="/usr/sbin:/usr/bin:/sbin:/bin"
count=0 count=0
while : while :

View File

@ -1,4 +1,5 @@
#!/bin/sh #!/bin/sh
PATH="/usr/sbin:/usr/bin:/sbin:/bin" PATH="/usr/sbin:/usr/bin:/sbin:/bin"
configpath=$(uci get AdGuardHome.AdGuardHome.configpath) configpath=$(uci get AdGuardHome.AdGuardHome.configpath)
while : while :