Обновить install.sh
This commit is contained in:
+16
-5
@@ -12,7 +12,7 @@ VER="${TAG#v}"
|
||||
|
||||
# Свой Gitea: сюда загружены те же файлы, что и в релизе GitHub
|
||||
# (Releases -> вложения). Пока адрес не заменён - шаг пропускается.
|
||||
GITEA_BASE="https://git.ownsrv.ru/yanistyle/sing-box-extended/releases/download/${TAG}"
|
||||
GITEA_BASE="https://gitea.example.com/USER/REPO/releases/download/${TAG}"
|
||||
|
||||
GITHUB_BASE="https://github.com/shtorm-7/sing-box-extended/releases/download/${TAG}"
|
||||
PROXY_PREFIX="https://ghproxy.net/"
|
||||
@@ -191,6 +191,12 @@ stop_service() {
|
||||
printf "${C}[*] Останавливаю %s...${N}\n" "$SERVICE_NAME"
|
||||
/etc/init.d/"$SERVICE_NAME" stop >/dev/null 2>&1
|
||||
|
||||
# Если службой управляет podkop, останавливаем и сам сервис sing-box,
|
||||
# чтобы procd не перезапустил стоковый sing-box при удалении бинарника
|
||||
if [ "$SERVICE_NAME" != "sing-box" ] && [ -f /etc/init.d/sing-box ]; then
|
||||
/etc/init.d/sing-box stop >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
killall sing-box >/dev/null 2>&1
|
||||
|
||||
SERVICE_STOPPED=1
|
||||
@@ -199,6 +205,8 @@ stop_service() {
|
||||
|
||||
printf "${C}[*] Распаковываю архив...${N}\n"
|
||||
tar -xzf "$FILE_NAME" || fail "Ошибка распаковки архива."
|
||||
# Архив больше не нужен: освобождаем место (/tmp - это оперативная память)
|
||||
rm -f "$FILE_NAME"
|
||||
BIN_PATH=$(find . -type f -name sing-box | head -n 1)
|
||||
[ -z "$BIN_PATH" ] && fail "Бинарник не найден внутри архива."
|
||||
|
||||
@@ -209,11 +217,14 @@ printf "${C}[*] Устанавливаю...${N}\n"
|
||||
rm -f "$REAL_BIN" "$VERSION_CACHE"
|
||||
|
||||
DEST_DIR=$(dirname "$DEST_FILE")
|
||||
STAGE_FILE="$DEST_DIR/.sing-box.tmp.$$"
|
||||
|
||||
cp "$BIN_PATH" "$STAGE_FILE" || fail "Недостаточно места на целевом диске ($DEST_DIR)."
|
||||
chmod +x "$STAGE_FILE"
|
||||
mv -f "$STAGE_FILE" "$DEST_FILE" || { rm -f "$STAGE_FILE"; fail "Сбой замены файла."; }
|
||||
# Места на флеше мало (бинарник ~70 МБ), старый и новый вместе не поместятся.
|
||||
# Поэтому сначала удаляем старый бинарник (в том числе стоковый из пакета
|
||||
# sing-box), и только потом копируем новый.
|
||||
rm -f "$DEST_FILE"
|
||||
cp "$BIN_PATH" "$DEST_FILE" || { rm -f "$DEST_FILE"; fail "Недостаточно места на целевом диске ($DEST_DIR). sing-box не установлен."; }
|
||||
chmod +x "$DEST_FILE"
|
||||
sync
|
||||
|
||||
NEW_VER=$("$DEST_FILE" version 2>/dev/null | head -n 1 | awk '{print $NF}')
|
||||
[ "$NEW_VER" != "$VER" ] && fail "Версия после установки ($NEW_VER) не совпадает с ожидаемой ($VER)."
|
||||
|
||||
Reference in New Issue
Block a user