run.bat 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo ========================================
  4. echo Peak Game - Launcher Script
  5. echo ========================================
  6. echo.
  7. :: Configuración
  8. set VENV_NAME=venv
  9. set PYTHON_SCRIPT=main.py
  10. set REQUIREMENTS_FILE=requirements.txt
  11. :: Verificar si Python está instalado
  12. python --version >nul 2>&1
  13. if errorlevel 1 (
  14. echo ERROR: Python no está instalado o no está en el PATH
  15. echo Por favor instala Python desde https://python.org
  16. pause
  17. exit /b 1
  18. )
  19. echo [INFO] Python detectado correctamente
  20. :: Verificar si el entorno virtual existe
  21. if exist "%VENV_NAME%\Scripts\activate.bat" (
  22. echo [INFO] Entorno virtual encontrado
  23. goto :check_dependencies
  24. ) else (
  25. echo [INFO] Creando entorno virtual...
  26. python -m venv %VENV_NAME%
  27. if errorlevel 1 (
  28. echo ERROR: No se pudo crear el entorno virtual
  29. pause
  30. exit /b 1
  31. )
  32. echo [SUCCESS] Entorno virtual creado exitosamente
  33. goto :install_dependencies
  34. )
  35. :check_dependencies
  36. echo [INFO] Activando entorno virtual...
  37. call "%VENV_NAME%\Scripts\activate.bat"
  38. :: Verificar si las dependencias están instaladas
  39. echo [INFO] Verificando dependencias...
  40. if exist "%REQUIREMENTS_FILE%" (
  41. :: Usar pip-sync o verificación más inteligente
  42. echo [INFO] Verificando si las dependencias necesitan actualizarse...
  43. :: Intentar una instalación en modo dry-run para verificar
  44. pip install --dry-run -r "%REQUIREMENTS_FILE%" > temp_check.txt 2>&1
  45. :: Verificar si hay algo que instalar (buscar "Would install" o "Requirement already satisfied")
  46. findstr /C:"Would install" temp_check.txt >nul
  47. if errorlevel 1 (
  48. :: No hay "Would install", verificar si todo está satisfecho
  49. findstr /C:"Requirement already satisfied" temp_check.txt >nul
  50. if not errorlevel 1 (
  51. echo [SUCCESS] Todas las dependencias están instaladas y actualizadas
  52. del temp_check.txt
  53. goto :run_script
  54. ) else (
  55. echo [INFO] Necesario verificar e instalar dependencias...
  56. del temp_check.txt
  57. goto :install_dependencies
  58. )
  59. ) else (
  60. echo [INFO] Se encontraron dependencias faltantes o desactualizadas
  61. del temp_check.txt
  62. goto :install_dependencies
  63. )
  64. ) else (
  65. echo [WARNING] Archivo requirements.txt no encontrado
  66. goto :run_script
  67. )
  68. :install_dependencies
  69. echo [INFO] Activando entorno virtual...
  70. call "%VENV_NAME%\Scripts\activate.bat"
  71. if exist "%REQUIREMENTS_FILE%" (
  72. echo [INFO] Instalando dependencias desde %REQUIREMENTS_FILE%...
  73. pip install -r "%REQUIREMENTS_FILE%"
  74. if errorlevel 1 (
  75. echo ERROR: No se pudieron instalar las dependencias
  76. pause
  77. exit /b 1
  78. )
  79. echo [SUCCESS] Dependencias instaladas correctamente
  80. ) else (
  81. echo [WARNING] Archivo %REQUIREMENTS_FILE% no encontrado, continuando sin instalar dependencias
  82. )
  83. :run_script
  84. echo.
  85. echo [INFO] Ejecutando %PYTHON_SCRIPT%...
  86. echo ========================================
  87. echo.
  88. :: Verificar si el archivo main.py existe
  89. if not exist "%PYTHON_SCRIPT%" (
  90. echo ERROR: El archivo %PYTHON_SCRIPT% no existe
  91. pause
  92. exit /b 1
  93. )
  94. :: Ejecutar el script principal
  95. python "%PYTHON_SCRIPT%"
  96. echo.
  97. echo ========================================
  98. echo [INFO] Ejecución completada
  99. echo Presiona cualquier tecla para salir...
  100. pause >nul