Fix/setup-interactive-mode#4
Merged
Merged
Conversation
Добавлена проверка BASH_SOURCE для определения способа запуска скрипта (прямой vs source). Это исправляет проблему, когда setup.sh показывал usage вместо интерактивных промптов. Changes: - Обернуть вызов main "$@" в условную проверку - При source - только загружаются функции без автовыполнения - При прямом запуске - выполняется main с аргументами Fixes: - setup.sh теперь запускается интерактивно без аргументов - network-manager.sh работает как standalone CLI - source в других скриптах не вызывает побочных эффектов 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Исправлена обработка пользовательского ввода и вывода информации в функциях list_available_networks и prompt_network_selection. Changes: - Перенаправлены info/success/warning сообщения в stderr (>&2) - list_available_networks теперь возвращает только число в stdout - Добавлена валидация что choice является числом перед сравнением - Добавлена проверка диапазона для choice (1 до max_choice) Fixes: - Исправлена ошибка "integer expression expected" при нечисловом вводе - Исправлена ошибка "syntax error: operand expected" - setup.sh теперь корректно ожидает пользовательский ввод 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Исправлена проблема с автовыполнением скриптов при source и улучшена обработка stdin/stdout в nginx-setup.sh. Changes: - Добавлена проверка BASH_SOURCE в ufw-setup.sh (строка 384) - Перенаправлены info/warning/error/success в stderr в detect_nginx_containers() - Перенаправлены все информационные сообщения в stderr в prompt_nginx_selection() Fixes: - setup.sh больше не запускает UFW конфигурацию автоматически - Nginx промпты теперь показываются корректно - Скрипт не зависает после "UFW Firewall Setup" - Пользователь видит все интерактивные промпты для выбора nginx Root Cause: - nginx-setup.sh делает source ufw-setup.sh (строка 10) - ufw-setup.sh автоматически вызывал main "$@" при source - prompt_nginx_selection() выводил info сообщения в stdout - command substitution захватывал весь вывод включая info сообщения 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Исправлена критичная ошибка с ANSI escape кодами в .env файле и добавлен информативный итоговый вывод в конце setup.sh. Changes: - Перенаправлены все info/success/error в stderr в validate_subnet() - Перенаправлены все info/success/error в stderr в find_free_subnet() - Перенаправлены все info/success/error в stderr в create_network() - Исправлена редиректация в find_free_subnet(): &>/dev/null вместо 2>&1 >/dev/null - Заменен простой вывод в конце setup.sh на детальный summary Fixes: - .env файл больше не содержит ANSI escape кодов - deploy.sh не падает с ошибкой "command not found" - Пользователь видит полный summary с итоговыми параметрами - Показываются все конфигурационные детали: Network, Nginx, CouchDB, Domain, Backups Root Cause: - Функции validate_subnet/find_free_subnet/create_network выводили info в stdout - Command substitution $(find_free_subnet) захватывал весь stdout включая ANSI коды - ANSI коды попадали в переменную NETWORK_SUBNET - При записи в .env появлялись строки вида: $'36m[INFO]\E[0m' Impact: - Пользователь теперь видит красивый summary после завершения setup - Все параметры отображаются структурировано - Ясно указаны следующие шаги 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Исправлена финальная проблема с ANSI кодами в .env - функция prompt_network_selection() выводила info и echo в stdout. Changes: - Перенаправлены info "Select network mode:" в stderr - Перенаправлены все echo в начале функции в stderr (строки 87, 92-100) Fixes: - NETWORK_MODE больше не содержит "[INFO] Select network mode:" - .env файл полностью чистый от лишнего вывода - Command substitution $(prompt_network_selection) возвращает только "mode|name" Root Cause: - setup.sh вызывает: result=$(prompt_network_selection) - Весь stdout попадал в переменную $result - info и echo выводились в stdout вместо stderr - Результат: NETWORK_MODE=[INFO]... вместо NETWORK_MODE=shared 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
ikeniborn
pushed a commit
that referenced
this pull request
Nov 19, 2025
…lidation) Исправлены 4 критические ошибки деплоя: 1. Ошибка #1: cp не может найти nginx config file - Проблема: stdout contamination в generate_nginx_config() - Решение: Перенаправить info() в stderr через >&2 - Файл: scripts/nginx-setup.sh:91 2. Ошибка #2: Certbot не может получить SSL (port 80 занят) - Проблема: certbot --standalone требует свободный порт 80 - Решение: Автоматически останавливать nginx перед certbot, запускать обратно после - Файл: scripts/ssl-setup.sh:97-137 3. Ошибка #3: NETWORK_NAME variable is not set - Проблема: Недостаточная валидация .env переменных - Решение: Добавить NETWORK_NAME и NETWORK_MODE в required_vars - Файл: deploy.sh:94 4. Ошибка #4: UFW is not active - Проблема: Недостаточно информативный error message - Решение: Улучшить error message с инструкциями - Файл: deploy.sh:104-112 Дополнительно: - Обновлена документация в docs/troubleshooting.md - Добавлена секция "Проблемы с деплоем" с описанием всех 4 ошибок - Добавлен Pre-deployment Checklist Тестирование: - Все скрипты прошли bash syntax check 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Исправлена финальная проблема с ANSI кодами в .env - функция
prompt_network_selection() выводила info и echo в stdout.
Changes:
Fixes:
Root Cause:
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com