code-review-agent/diagnose-and-fix.sh
Primakov Alexandr Alexandrovich bbfa7c0967 Update diagnose-and-fix script to set installation directory dynamically
- Modified `diagnose-and-fix.sh` to determine the installation directory based on the script's location.
- Added output to display the working directory for improved user feedback during diagnostics.
2025-10-13 00:37:46 +03:00

109 lines
3.6 KiB
Bash

#!/bin/bash
echo "=========================================="
echo "AI Review - Диагностика и исправление"
echo "=========================================="
echo ""
# Определить директорию установки (где находится скрипт)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
INSTALL_DIR="$SCRIPT_DIR"
echo "Working directory: $INSTALL_DIR"
echo ""
echo "1. Проверка файлов:"
echo " - Backend: $([ -d $INSTALL_DIR/backend ] && echo '✓' || echo '✗')"
echo " - Frontend: $([ -d $INSTALL_DIR/frontend ] && echo '✓' || echo '✗')"
echo " - venv: $([ -d $INSTALL_DIR/backend/venv ] && echo '✓' || echo '✗ MISSING')"
echo " - venv/bin/python: $([ -f $INSTALL_DIR/backend/venv/bin/python ] && echo '✓' || echo '✗ MISSING')"
echo " - venv/bin/python3: $([ -f $INSTALL_DIR/backend/venv/bin/python3 ] && echo '✓' || echo '✗ MISSING')"
echo " - public: $([ -d $INSTALL_DIR/backend/public ] && echo '✓' || echo '✗ MISSING')"
echo " - DB: $([ -f $INSTALL_DIR/backend/review.db ] && echo '✓' || echo '⚠️ будет создана')"
echo ""
# Проверить что именно в venv
if [ -d "$INSTALL_DIR/backend/venv" ]; then
echo "2. Содержимое venv/bin/:"
ls -la "$INSTALL_DIR/backend/venv/bin/" | head -20
echo ""
fi
echo "=========================================="
echo "Исправление"
echo "=========================================="
echo ""
cd "$INSTALL_DIR/backend"
# Удалить старый venv если есть
if [ -d "venv" ]; then
echo "Удаление старого venv..."
rm -rf venv
fi
# Создать новый venv
echo "Создание нового venv..."
python3 -m venv venv
# Проверить создание
if [ ! -f "venv/bin/python" ] && [ ! -f "venv/bin/python3" ]; then
echo "✗ ОШИБКА: venv не создан правильно!"
echo ""
echo "Попробуйте:"
echo " sudo apt-get install python3-venv"
echo " python3 -m venv venv"
exit 1
fi
echo "✓ venv создан"
# Активировать и установить зависимости
echo "Установка зависимостей..."
source venv/bin/activate
pip install --upgrade pip > /dev/null
pip install -r requirements.txt
echo "✓ Зависимости установлены"
# Применить миграции
if [ -f "migrate.py" ]; then
echo "Применение миграций..."
python migrate.py
echo "✓ Миграции применены"
fi
echo ""
echo "=========================================="
echo "Проверка"
echo "=========================================="
echo ""
echo "Попытка запуска (5 секунд)..."
timeout 5 python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 2>&1 | head -20 &
UVICORN_PID=$!
sleep 6
if ps -p $UVICORN_PID > /dev/null 2>&1; then
echo "✓ Uvicorn запустился успешно"
kill $UVICORN_PID 2>/dev/null
else
echo "⚠️ Uvicorn остановился (это нормально для теста)"
fi
echo ""
echo "=========================================="
echo "Готово!"
echo "=========================================="
echo ""
echo "Теперь перезапустите сервис:"
echo " sudo systemctl restart ai-review"
echo " sudo systemctl status ai-review"
echo ""
echo "Или запустите вручную для теста:"
echo " cd $INSTALL_DIR/backend"
echo " source venv/bin/activate"
echo " python -m uvicorn app.main:app --host 0.0.0.0 --port 8000"