#!/bin/bash # 🚀 Скрипт для быстрого тестирования системы обновлений echo "╔════════════════════════════════════════════════╗" echo "║ 🚀 Тестирование Системы Обновлений Umbrix ║" echo "╚════════════════════════════════════════════════╝" echo "" # Проверка PHP if ! command -v php &> /dev/null; then echo "❌ PHP не установлен. Установите: sudo apt install php" exit 1 fi echo "✅ PHP $(php -v | head -1 | cut -d' ' -f2) найден" # Переход в папку сервера cd "$(dirname "$0")" || exit # Проверка файлов echo "🔍 Проверка необходимых файлов..." files=("api.php" "latest.json" ".htaccess") for file in "${files[@]}"; do if [ -f "$file" ]; then echo " ✅ $file" else echo " ❌ $file - НЕ НАЙДЕН!" exit 1 fi done # Создание папки downloads если нет if [ ! -d "downloads" ]; then mkdir -p downloads echo "📁 Создана папка downloads/" fi # Создание папки logs если нет if [ ! -d "logs" ]; then mkdir -p logs echo "📁 Создана папка logs/" fi # Проверка порта PORT=8000 if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null 2>&1 ; then echo "⚠️ Порт $PORT уже занят. Останавливаю..." kill $(lsof -t -i:$PORT) 2>/dev/null sleep 1 fi # Запуск PHP сервера echo "" echo "🚀 Запускаю PHP сервер на http://localhost:$PORT" php -S localhost:$PORT > logs/server.log 2>&1 & PHP_PID=$! # Ждем запуска sleep 2 # Проверка что сервер запустился if ! kill -0 $PHP_PID 2>/dev/null; then echo "❌ Не удалось запустить сервер. Смотрите: logs/server.log" exit 1 fi echo "✅ Сервер запущен (PID: $PHP_PID)" # Проверка API echo "" echo "🔍 Проверка API endpoint..." RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:$PORT/api.php) if [ "$RESPONSE" -eq 200 ]; then echo "✅ API работает (HTTP $RESPONSE)" echo "" echo "📄 Ответ API:" echo "─────────────────────────────────────────────────" curl -s http://localhost:$PORT/api.php | python3 -m json.tool 2>/dev/null || curl -s http://localhost:$PORT/api.php echo "─────────────────────────────────────────────────" else echo "❌ API не отвечает (HTTP $RESPONSE)" echo "Смотрите логи: tail -f logs/server.log" fi # Информация для пользователя echo "" echo "╔════════════════════════════════════════════════╗" echo "║ 📱 Инструкции ║" echo "╚════════════════════════════════════════════════╝" echo "" echo "🔗 API доступен по адресу:" echo " http://localhost:$PORT/api.php" echo "" echo "📱 Для Android эмулятора используйте:" echo " http://10.0.2.2:$PORT/api.php" echo "" echo "🔧 В constants.dart укажите:" echo " static const customUpdateServerUrl = \"http://10.0.2.2:$PORT/api.php\";" echo " static const useCustomUpdateServer = true;" echo "" echo "📋 Далее:" echo " 1. Откройте приложение в эмуляторе" echo " 2. Зайдите в Настройки → О программе" echo " 3. Нажмите 'Проверить обновления'" echo "" echo "📊 Логи сервера:" echo " tail -f logs/server.log" echo "" echo "🛑 Остановить сервер:" echo " kill $PHP_PID" echo "" echo "═════════════════════════════════════════════════" # Сохранить PID echo $PHP_PID > logs/server.pid echo "" echo "✅ Сервер работает. Нажмите Ctrl+C для остановки" echo "" # Ждем сигнала остановки trap "echo ''; echo '🛑 Останавливаю сервер...'; kill $PHP_PID 2>/dev/null; rm -f logs/server.pid; echo '✅ Сервер остановлен'; exit 0" INT TERM # Следим за логами tail -f logs/server.log