From 9dfe8a770cc246bada170e15e37144135c2da168 Mon Sep 17 00:00:00 2001 From: Niko Marmeladkov Date: Wed, 26 Aug 2026 15:22:25 +0300 Subject: [PATCH] =?UTF-8?q?install.sh:=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5?= =?UTF-8?q?=D1=80=D0=B6=D0=BA=D0=B0=20uclient-fetch=20(=D1=80=D0=BE=D1=83?= =?UTF-8?q?=D1=82=D0=B5=D1=80=D1=8B=20=D0=B1=D0=B5=D0=B7=20curl/wget,=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=BF=D1=80.=20filogic-=D0=B1=D0=B8=D0=BB=D0=B4?= =?UTF-8?q?=D1=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index ddf866f..27f5d29 100755 --- a/install.sh +++ b/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 }