From 39d00f862f2da0fcc40f0dc52d0b170bd4e418c2 Mon Sep 17 00:00:00 2001 From: yanistyle Date: Sun, 22 Feb 2026 22:55:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D1=82=D1=8C=20in?= =?UTF-8?q?stall.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 143 ----------------------------------------------------- 1 file changed, 143 deletions(-) delete mode 100644 install.sh diff --git a/install.sh b/install.sh deleted file mode 100644 index 695f015..0000000 --- a/install.sh +++ /dev/null @@ -1,143 +0,0 @@ -#!/bin/sh - -TARGET_TAG="v1.12.17-extended-1.5.3" -FILE_PATTERN="linux-$ARCH_SUFFIX.tar.gz" -API_URL="https://api.github.com/repos/shtorm-7/sing-box-extended/releases/tags/$TARGET_TAG" -ARCHIVE_NAME="sing-box-latest.tar.gz" -DEST_FILE="/usr/bin/sing-box" - -R="\033[1;31m" -G="\033[1;32m" -Y="\033[1;33m" -C="\033[1;36m" -N="\033[0m" - -fail() { - printf "${R}[!] ОШИБКА: %s${N}\n" "$1" - [ -n "$WORK_DIR" ] && rm -rf "$WORK_DIR" - [ "$SERVICE_STOPPED" = "1" ] && service "$SERVICE_NAME" start 2>/dev/null - exit 1 -} - -if command -v curl >/dev/null 2>&1; then - FETCH="curl -fsSL --insecure" - DOWNLOAD="curl -fsSL --insecure -o" -elif command -v wget >/dev/null 2>&1; then - FETCH="wget -qO- --no-check-certificate" - DOWNLOAD="wget -q --no-check-certificate -O" -else - printf "${R}[!] ОШИБКА: Не найден curl или wget.${N}\n" - exit 1 -fi - -if [ -f "/opt/etc/init.d/podkop" ] || [ -f "/etc/init.d/podkop" ]; then - SERVICE_NAME="podkop" -else - SERVICE_NAME="sing-box" -fi -HOST_ARCH=$(uname -m) - -case $HOST_ARCH in - aarch64) ARCH_SUFFIX="arm64" ;; - armv7*) ARCH_SUFFIX="armv7" ;; - armv6*) ARCH_SUFFIX="armv6" ;; - x86_64) ARCH_SUFFIX="amd64" ;; - i386 | i686) ARCH_SUFFIX="386" ;; - mips) ARCH_SUFFIX="mips-softfloat" ;; - mipsel | mipsle) ARCH_SUFFIX="mipsle-softfloat" ;; - mips64) ARCH_SUFFIX="mips64" ;; - mips64el | mips64le) ARCH_SUFFIX="mips64le" ;; - riscv64) ARCH_SUFFIX="riscv64" ;; - s390x) ARCH_SUFFIX="s390x" ;; - *) - printf "${R}[!] ОШИБКА: Архитектура $HOST_ARCH не поддерживается.${N}\n" - exit 1 - ;; -esac - -CURRENT_VER="" -if [ -f "$DEST_FILE" ]; then - CURRENT_VER=$("$DEST_FILE" version 2>/dev/null | head -n 1 | awk '{print $NF}') || true -fi - -printf "${C}[*] Проверяю обновления...${N}\n" -API_RESPONSE=$($FETCH "$API_URL" 2>/dev/null) || true - -if [ -z "$API_RESPONSE" ]; then - fail "Не удалось подключиться к GitHub API. Проверьте соединение." -fi - -LATEST_TAG=$(echo "$API_RESPONSE" | tr ',' '\n' | grep '"tag_name"' | head -n 1 | awk -F '"' '{print $4}') -LATEST_VER=$(echo "$LATEST_TAG" | sed 's/^v//') - -printf "${C}[*] Текущая: ${Y}${CURRENT_VER:-не установлен}${C} | Последняя: ${Y}${LATEST_VER:-неизвестно}${N}\n" - -if [ -n "$CURRENT_VER" ] && [ -n "$LATEST_VER" ] && [ "$CURRENT_VER" = "$LATEST_VER" ]; then - printf "${G}[+] Уже установлена последняя версия. Обновление не требуется.${N}\n" - exit 0 -fi - -FILE_PATTERN="linux-$ARCH_SUFFIX.tar.gz" - -DOWNLOAD_URL=$(echo "$API_RESPONSE" \ - | tr ',' '\n' \ - | grep "browser_download_url" \ - | grep "$FILE_PATTERN" \ - | head -n 1 \ - | awk -F '"' '{print $4}') - -if [ -z "$DOWNLOAD_URL" ]; then - fail "Файл для архитектуры '$HOST_ARCH' ($ARCH_SUFFIX) не найден." -fi - -sync -echo 3 > /proc/sys/vm/drop_caches 2>/dev/null || true - -FREE_RAM_KB=$(awk '/MemFree/ {print $2}' /proc/meminfo) - -if [ "$FREE_RAM_KB" -gt 81920 ]; then - WORK_DIR="/tmp/sing-box-install" -else - WORK_DIR="$HOME/sing-box-install_tmp" -fi - -rm -rf "$WORK_DIR" -mkdir -p "$WORK_DIR" -cd "$WORK_DIR" - -printf "${C}[*] Скачиваю и устанавливаю...${N}\n" -$DOWNLOAD "$ARCHIVE_NAME" "$DOWNLOAD_URL" || fail "Не удалось скачать файл." - -if [ ! -s "$ARCHIVE_NAME" ]; then - fail "Скачанный файл пустой." -fi - -SERVICE_STOPPED="1" -service "$SERVICE_NAME" stop 2>/dev/null || true -sleep 2 - -sync -echo 3 > /proc/sys/vm/drop_caches 2>/dev/null || true - -tar -xzf "$ARCHIVE_NAME" || fail "Не удалось распаковать архив." -rm -f "$ARCHIVE_NAME" - -BINARY_PATH=$(find . -type f -name sing-box | head -n 1) - -if [ -z "$BINARY_PATH" ]; then - fail "Бинарник не найден в архиве." -fi - -mv -f "$BINARY_PATH" "$DEST_FILE" || fail "Не удалось заменить файл." -chmod +x "$DEST_FILE" - -NEW_VERSION=$("$DEST_FILE" version 2>/dev/null | head -n 1 | awk '{print $NF}') || true - -cd / -rm -rf "$WORK_DIR" -WORK_DIR="" - -SERVICE_STOPPED="" -service "$SERVICE_NAME" start - -printf "${G}[+] Готово: ${Y}${CURRENT_VER:-н/д}${G} -> ${Y}${NEW_VERSION:-н/д}${N}\n"