fix: install.sh запускает меню сразу через /dev/tty

This commit is contained in:
2026-05-22 20:13:12 +04:00
parent 13a1583df1
commit 99f4b109d5
+6 -11
View File
@@ -1,21 +1,14 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# install.sh — Docker Migrate Tool Installer # install.sh — Docker Migrate Tool Installer
# Запуск: wget -qO- https://giteas.stitch505.su/Stitch505/docker-migrate/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 set -e
REPO_URL="https://giteas.stitch505.su/Stitch505/docker-migrate" REPO_URL="https://giteas.stitch505.su/Stitch505/docker-migrate"
BRANCH="main" BRANCH="main"
INSTALL_DIR="/opt/docker-migrate" INSTALL_DIR="/opt/docker-migrate"
RUN_IMMEDIATELY=false
if [ "$1" = "--run" ]; then
RUN_IMMEDIATELY=true
fi
log() { echo "[migrate-install] $*"; } log() { echo "[migrate-install] $*"; }
@@ -88,11 +81,13 @@ log "Установлено в $INSTALL_DIR"
# Создаём symlink в /usr/local/bin # Создаём symlink в /usr/local/bin
ln -sf "$INSTALL_DIR/migrate" /usr/local/bin/docker-migrate 2>/dev/null || true ln -sf "$INSTALL_DIR/migrate" /usr/local/bin/docker-migrate 2>/dev/null || true
if [ "$RUN_IMMEDIATELY" = true ]; then if [ -e /dev/tty ]; then
# Если есть терминал — запускаем migrate с перехваченным stdin
log "Запускаем docker-migrate ..." log "Запускаем docker-migrate ..."
cd "$INSTALL_DIR" cd "$INSTALL_DIR"
exec python3 migrate "$@" exec < /dev/tty python3 migrate "$@"
else else
# Нет терминала (pipe без tty) — показываем инструкцию
echo "" echo ""
echo "==========================================" echo "=========================================="
echo "Установка завершена!" echo "Установка завершена!"