install.sh: поддержка uclient-fetch (роутеры без curl/wget, напр. filogic-билды)
This commit is contained in:
parent
6520dee876
commit
9dfe8a770c
1 changed files with 13 additions and 6 deletions
19
install.sh
19
install.sh
|
|
@ -18,8 +18,9 @@
|
|||
# Требования:
|
||||
# - креды "login:password" (без кавычек): файл /root/creds
|
||||
# на роутере или переменная окружения NIKOVPN_CREDS
|
||||
# - доступ в интернет (скрипт тянет всё только с f.n1ko.dev и vpnd.n1ko.dev;
|
||||
# если рядом с install.sh есть каталог bin/ — бинарники берутся из него)
|
||||
# - даунлоадер: curl, wget или uclient-fetch
|
||||
# - доступ в интернет (бинарники — из релизов git.n1ko.dev,
|
||||
# резервом f.n1ko.dev; если рядом с install.sh есть bin/ — из него)
|
||||
#
|
||||
# Скрипт сам определяет архитектуру (openwrt_release/apk/opkg/uname),
|
||||
# выбирает лучший протокол и сервер (Hysteria2 > TUIC > Naive > VLESS > SS)
|
||||
|
|
@ -53,8 +54,8 @@ need_root() { [ "$(id -u)" = "0" ] || die "нужны права root"; }
|
|||
|
||||
# --- downloader ---
|
||||
DL=""
|
||||
for t in curl wget; do have "$t" && DL="$t" && break; done
|
||||
[ -n "$DL" ] || die "нужен curl или wget"
|
||||
for t in curl wget uclient-fetch; do have "$t" && DL="$t" && break; done
|
||||
[ -n "$DL" ] || die "нужен curl, wget или uclient-fetch"
|
||||
|
||||
dl() { # $1=url $2=out ; резерв на http:// для f.n1ko.dev
|
||||
local url="$1" out="$2" ok=""
|
||||
|
|
@ -62,10 +63,14 @@ dl() { # $1=url $2=out ; резерв на http:// для f.n1ko.dev
|
|||
curl -fsSL --max-time 120 -o "$out" "$url" && ok=1
|
||||
[ -z "$ok" ] && case "$url" in https://f.n1ko.dev/*)
|
||||
curl -fsSL --max-time 120 -o "$out" "http://${url#https://}" && ok=1 ;; esac
|
||||
else
|
||||
elif [ "$DL" = wget ]; then
|
||||
wget -q -T 120 -O "$out" "$url" && ok=1
|
||||
[ -z "$ok" ] && case "$url" in https://f.n1ko.dev/*)
|
||||
wget -q -T 120 -O "$out" "http://${url#https://}" && ok=1 ;; esac
|
||||
else
|
||||
uclient-fetch -q --timeout=120 -O "$out" "$url" && ok=1
|
||||
[ -z "$ok" ] && case "$url" in https://f.n1ko.dev/*)
|
||||
uclient-fetch -q --timeout=120 -O "$out" "http://${url#https://}" && ok=1 ;; esac
|
||||
fi
|
||||
[ -n "$ok" ]
|
||||
}
|
||||
|
|
@ -74,8 +79,10 @@ pipe_dl() { # $1=url -> поток в stdout (для больших файло
|
|||
# /tmp на OpenWRT — это RAM, крупный бинарник туда класть нельзя)
|
||||
if [ "$DL" = curl ]; then
|
||||
curl -fsSL --max-time 600 "$1"
|
||||
else
|
||||
elif [ "$DL" = wget ]; then
|
||||
wget -q -T 600 -O - "$1"
|
||||
else
|
||||
uclient-fetch -q --timeout=600 -O - "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue