fix: install.sh pipe-mode, add .gitignore, robust error handling, resume state check
This commit is contained in:
+30
-8
@@ -1,13 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
# install.sh — Docker Migrate Tool Installer
|
||||
# Запуск: wget -qO- https://your-gitea/raw/main/install.sh | bash
|
||||
# curl -fsSL https://your-gitea/raw/main/install.sh | bash
|
||||
|
||||
# Запуск: wget -qO- https://giteas.stitch505.su/Stitch505/docker-migrate/raw/main/install.sh | bash
|
||||
# Потом запускать: docker-migrate
|
||||
#
|
||||
# Чтобы сразу запустить после установки (не через pipe):
|
||||
# curl -fsSL https://.../install.sh -o install.sh && bash install.sh --run
|
||||
#
|
||||
set -e
|
||||
|
||||
REPO_URL="https://giteas.stitch505.su/Stitch505/docker-migrate"
|
||||
BRANCH="main"
|
||||
INSTALL_DIR="/opt/docker-migrate"
|
||||
RUN_IMMEDIATELY=false
|
||||
|
||||
if [ "$1" = "--run" ]; then
|
||||
RUN_IMMEDIATELY=true
|
||||
fi
|
||||
|
||||
log() { echo "[migrate-install] $*"; }
|
||||
|
||||
@@ -43,7 +51,7 @@ fi
|
||||
|
||||
# Установка
|
||||
if [ -d "$INSTALL_DIR" ]; then
|
||||
log "Директория $INSTALL_DIR уже существует. Удаляем ..."
|
||||
log "Директория $INSTALL_DIR уже существует. Перезаписываем ..."
|
||||
rm -rf "$INSTALL_DIR"
|
||||
fi
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
@@ -57,7 +65,6 @@ case "$METHOD" in
|
||||
log "Скачиваем через curl ..."
|
||||
tmpzip=$(mktemp /tmp/migrate-XXXXX.zip)
|
||||
curl -fsSL "${REPO_URL}/archive/refs/heads/${BRANCH}.zip" -o "$tmpzip" || {
|
||||
# Fallback для gitea raw zip
|
||||
curl -fsSL "${REPO_URL}/archive/${BRANCH}.zip" -o "$tmpzip"
|
||||
}
|
||||
python3 -c "import zipfile; zipfile.ZipFile('$tmpzip').extractall('/tmp')"
|
||||
@@ -81,6 +88,21 @@ log "Установлено в $INSTALL_DIR"
|
||||
# Создаём symlink в /usr/local/bin
|
||||
ln -sf "$INSTALL_DIR/migrate" /usr/local/bin/docker-migrate 2>/dev/null || true
|
||||
|
||||
log "Запускаем docker-migrate ..."
|
||||
cd "$INSTALL_DIR"
|
||||
exec python3 migrate "$@"
|
||||
if [ "$RUN_IMMEDIATELY" = true ]; then
|
||||
log "Запускаем docker-migrate ..."
|
||||
cd "$INSTALL_DIR"
|
||||
exec python3 migrate "$@"
|
||||
else
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Установка завершена!"
|
||||
echo ""
|
||||
echo "Запустите интерактивный режим:"
|
||||
echo " docker-migrate"
|
||||
echo ""
|
||||
echo "Или напрямую:"
|
||||
echo " docker-migrate --mode=source # подготовка к переносу"
|
||||
echo " docker-migrate --mode=target # восстановление на новом сервере"
|
||||
echo " docker-migrate --resume # продолжить после ошибки"
|
||||
echo "=========================================="
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user