@echo off setlocal enabledelayedexpansion echo ======================================== echo Peak Game - Launcher Script echo ======================================== echo. :: Configuración set VENV_NAME=venv set PYTHON_SCRIPT=main.py set REQUIREMENTS_FILE=requirements.txt :: Verificar si Python está instalado python --version >nul 2>&1 if errorlevel 1 ( echo ERROR: Python no está instalado o no está en el PATH echo Por favor instala Python desde https://python.org pause exit /b 1 ) echo [INFO] Python detectado correctamente :: Verificar si el entorno virtual existe if exist "%VENV_NAME%\Scripts\activate.bat" ( echo [INFO] Entorno virtual encontrado goto :check_dependencies ) else ( echo [INFO] Creando entorno virtual... python -m venv %VENV_NAME% if errorlevel 1 ( echo ERROR: No se pudo crear el entorno virtual pause exit /b 1 ) echo [SUCCESS] Entorno virtual creado exitosamente goto :install_dependencies ) :check_dependencies echo [INFO] Activando entorno virtual... call "%VENV_NAME%\Scripts\activate.bat" :: Verificar si las dependencias están instaladas echo [INFO] Verificando dependencias... if exist "%REQUIREMENTS_FILE%" ( :: Usar pip-sync o verificación más inteligente echo [INFO] Verificando si las dependencias necesitan actualizarse... :: Intentar una instalación en modo dry-run para verificar pip install --dry-run -r "%REQUIREMENTS_FILE%" > temp_check.txt 2>&1 :: Verificar si hay algo que instalar (buscar "Would install" o "Requirement already satisfied") findstr /C:"Would install" temp_check.txt >nul if errorlevel 1 ( :: No hay "Would install", verificar si todo está satisfecho findstr /C:"Requirement already satisfied" temp_check.txt >nul if not errorlevel 1 ( echo [SUCCESS] Todas las dependencias están instaladas y actualizadas del temp_check.txt goto :run_script ) else ( echo [INFO] Necesario verificar e instalar dependencias... del temp_check.txt goto :install_dependencies ) ) else ( echo [INFO] Se encontraron dependencias faltantes o desactualizadas del temp_check.txt goto :install_dependencies ) ) else ( echo [WARNING] Archivo requirements.txt no encontrado goto :run_script ) :install_dependencies echo [INFO] Activando entorno virtual... call "%VENV_NAME%\Scripts\activate.bat" if exist "%REQUIREMENTS_FILE%" ( echo [INFO] Instalando dependencias desde %REQUIREMENTS_FILE%... pip install -r "%REQUIREMENTS_FILE%" if errorlevel 1 ( echo ERROR: No se pudieron instalar las dependencias pause exit /b 1 ) echo [SUCCESS] Dependencias instaladas correctamente ) else ( echo [WARNING] Archivo %REQUIREMENTS_FILE% no encontrado, continuando sin instalar dependencias ) :run_script echo. echo [INFO] Ejecutando %PYTHON_SCRIPT%... echo ======================================== echo. :: Verificar si el archivo main.py existe if not exist "%PYTHON_SCRIPT%" ( echo ERROR: El archivo %PYTHON_SCRIPT% no existe pause exit /b 1 ) :: Ejecutar el script principal python "%PYTHON_SCRIPT%" echo. echo ======================================== echo [INFO] Ejecución completada echo Presiona cualquier tecla para salir... pause >nul