initial commit
This commit is contained in:
288
scripts/env-setup.bat
Normal file
288
scripts/env-setup.bat
Normal file
@@ -0,0 +1,288 @@
|
||||
@echo off
|
||||
REM ====================================
|
||||
REM SCRIPT DE CONFIGURACIÓN DE ENTORNO
|
||||
REM Balotario Licencia A-I (Windows)
|
||||
REM =============================
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM Función para generar SECRET_KEY
|
||||
:generate_secret_key
|
||||
python -c "import secrets; print(secrets.token_hex(32))" 2>nul
|
||||
if errorlevel 1 (
|
||||
REM Fallback si Python no está disponible
|
||||
echo %RANDOM%%RANDOM%%RANDOM%%RANDOM%
|
||||
)
|
||||
goto :eof
|
||||
|
||||
REM Función para mostrar header
|
||||
:print_header
|
||||
echo ======================================
|
||||
echo 🌍 CONFIGURACIÓN DE ENTORNO
|
||||
echo Balotario Licencia A-I
|
||||
echo ======================================
|
||||
echo.
|
||||
goto :eof
|
||||
|
||||
REM Función para configurar desarrollo
|
||||
:setup_development
|
||||
echo ℹ️ Configurando entorno de desarrollo...
|
||||
|
||||
REM Generar SECRET_KEY
|
||||
for /f %%i in ('python -c "import secrets; print(secrets.token_hex(32))" 2^>nul') do set SECRET_KEY=%%i
|
||||
if "!SECRET_KEY!"=="" set SECRET_KEY=%RANDOM%%RANDOM%%RANDOM%%RANDOM%
|
||||
|
||||
REM Crear archivo .env
|
||||
(
|
||||
echo # ====================================
|
||||
echo # CONFIGURACIÓN DE DESARROLLO
|
||||
echo # Generado automáticamente: %date% %time%
|
||||
echo # ====================================
|
||||
echo.
|
||||
echo # Configuración de Flask
|
||||
echo SECRET_KEY=!SECRET_KEY!
|
||||
echo FLASK_ENV=development
|
||||
echo FLASK_CONFIG=development
|
||||
echo FLASK_DEBUG=true
|
||||
echo.
|
||||
echo # Configuración del servidor
|
||||
echo HOST=127.0.0.1
|
||||
echo PORT=5000
|
||||
echo.
|
||||
echo # Configuración de Docker
|
||||
echo DOCKER_CONTAINER=false
|
||||
echo.
|
||||
echo # Configuración de logging
|
||||
echo LOG_LEVEL=DEBUG
|
||||
echo AUTO_RELOAD=true
|
||||
echo SHOW_DEBUG_TOOLBAR=false
|
||||
echo.
|
||||
echo # ====================================
|
||||
echo # NOTAS:
|
||||
echo # - Cambia SECRET_KEY antes de ir a producción
|
||||
echo # - Revisa .env.sample para más opciones
|
||||
echo # ====================================
|
||||
) > .env
|
||||
|
||||
echo ✅ Configuración de desarrollo creada en .env
|
||||
goto :eof
|
||||
|
||||
REM Función para configurar producción
|
||||
:setup_production
|
||||
echo ℹ️ Configurando entorno de producción...
|
||||
|
||||
REM Generar SECRET_KEY
|
||||
for /f %%i in ('python -c "import secrets; print(secrets.token_hex(32))" 2^>nul') do set SECRET_KEY=%%i
|
||||
if "!SECRET_KEY!"=="" set SECRET_KEY=%RANDOM%%RANDOM%%RANDOM%%RANDOM%
|
||||
|
||||
REM Crear archivo .env
|
||||
(
|
||||
echo # ====================================
|
||||
echo # CONFIGURACIÓN DE PRODUCCIÓN
|
||||
echo # Generado automáticamente: %date% %time%
|
||||
echo # ====================================
|
||||
echo.
|
||||
echo # Configuración de Flask
|
||||
echo SECRET_KEY=!SECRET_KEY!
|
||||
echo FLASK_ENV=production
|
||||
echo FLASK_CONFIG=production
|
||||
echo FLASK_DEBUG=false
|
||||
echo.
|
||||
echo # Configuración del servidor
|
||||
echo HOST=0.0.0.0
|
||||
echo PORT=5000
|
||||
echo.
|
||||
echo # Configuración de Docker
|
||||
echo DOCKER_CONTAINER=true
|
||||
echo.
|
||||
echo # Configuración de logging
|
||||
echo LOG_LEVEL=INFO
|
||||
echo.
|
||||
echo # ====================================
|
||||
echo # IMPORTANTE:
|
||||
echo # - Guarda SECRET_KEY en lugar seguro
|
||||
echo # - Revisa todas las configuraciones antes de desplegar
|
||||
echo # ====================================
|
||||
) > .env
|
||||
|
||||
echo ✅ Configuración de producción creada en .env
|
||||
echo ⚠️ IMPORTANTE: Guarda la SECRET_KEY en un lugar seguro
|
||||
goto :eof
|
||||
|
||||
REM Función para configurar Docker
|
||||
:setup_docker
|
||||
echo ℹ️ Configurando entorno para Docker...
|
||||
|
||||
REM Generar SECRET_KEY
|
||||
for /f %%i in ('python -c "import secrets; print(secrets.token_hex(32))" 2^>nul') do set SECRET_KEY=%%i
|
||||
if "!SECRET_KEY!"=="" set SECRET_KEY=%RANDOM%%RANDOM%%RANDOM%%RANDOM%
|
||||
|
||||
REM Crear archivo .env
|
||||
(
|
||||
echo # ====================================
|
||||
echo # CONFIGURACIÓN PARA DOCKER
|
||||
echo # Generado automáticamente: %date% %time%
|
||||
echo # ====================================
|
||||
echo.
|
||||
echo # Configuración de Flask
|
||||
echo SECRET_KEY=!SECRET_KEY!
|
||||
echo FLASK_ENV=production
|
||||
echo FLASK_CONFIG=production
|
||||
echo FLASK_DEBUG=false
|
||||
echo.
|
||||
echo # Configuración del servidor
|
||||
echo HOST=0.0.0.0
|
||||
echo PORT=5000
|
||||
echo.
|
||||
echo # Configuración de Docker
|
||||
echo DOCKER_CONTAINER=true
|
||||
echo.
|
||||
echo # Configuración de logging
|
||||
echo LOG_LEVEL=INFO
|
||||
echo.
|
||||
echo # ====================================
|
||||
echo # DOCKER NOTES:
|
||||
echo # - Estas variables pueden ser sobrescritas en docker-compose.yml
|
||||
echo # - Para desarrollo con Docker, cambia FLASK_ENV=development
|
||||
echo # ====================================
|
||||
) > .env
|
||||
|
||||
echo ✅ Configuración para Docker creada en .env
|
||||
goto :eof
|
||||
|
||||
REM Función para validar configuración
|
||||
:validate_env
|
||||
echo ℹ️ Validando configuración...
|
||||
|
||||
if not exist ".env" (
|
||||
echo ❌ Archivo .env no encontrado
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
findstr /C:"SECRET_KEY=" .env >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ SECRET_KEY no encontrada en .env
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
findstr /C:"FLASK_ENV=" .env >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ FLASK_ENV no encontrada en .env
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo ✅ Configuración válida
|
||||
echo.
|
||||
echo ℹ️ Resumen de configuración:
|
||||
echo ------------------------
|
||||
for /f "tokens=1,2 delims==" %%a in ('findstr /R "^SECRET_KEY= ^FLASK_ENV= ^FLASK_DEBUG= ^HOST= ^PORT=" .env') do (
|
||||
if "%%a"=="SECRET_KEY" (
|
||||
echo %%a=***OCULTA***
|
||||
) else (
|
||||
echo %%a=%%b
|
||||
)
|
||||
)
|
||||
goto :eof
|
||||
|
||||
REM Función para mostrar ayuda
|
||||
:show_help
|
||||
echo Uso: %~nx0 [COMANDO]
|
||||
echo.
|
||||
echo Comandos disponibles:
|
||||
echo dev Configurar para desarrollo local
|
||||
echo prod Configurar para producción
|
||||
echo docker Configurar para Docker
|
||||
echo validate Validar configuración actual
|
||||
echo backup Crear backup de .env actual
|
||||
echo restore Restaurar desde .env.sample
|
||||
echo help Mostrar esta ayuda
|
||||
echo.
|
||||
echo Ejemplos:
|
||||
echo %~nx0 dev # Configuración de desarrollo
|
||||
echo %~nx0 prod # Configuración de producción
|
||||
echo %~nx0 docker # Configuración para Docker
|
||||
goto :eof
|
||||
|
||||
REM Función para crear backup
|
||||
:backup_env
|
||||
if exist ".env" (
|
||||
set backup_file=.env.backup.%date:~-4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%
|
||||
set backup_file=!backup_file: =0!
|
||||
copy .env "!backup_file!" >nul
|
||||
echo ✅ Backup creado: !backup_file!
|
||||
) else (
|
||||
echo ⚠️ No hay archivo .env para respaldar
|
||||
)
|
||||
goto :eof
|
||||
|
||||
REM Función para restaurar desde sample
|
||||
:restore_env
|
||||
if exist ".env.sample" (
|
||||
copy .env.sample .env >nul
|
||||
echo ✅ Configuración restaurada desde .env.sample
|
||||
echo ⚠️ Recuerda personalizar los valores en .env
|
||||
) else (
|
||||
echo ❌ Archivo .env.sample no encontrado
|
||||
exit /b 1
|
||||
)
|
||||
goto :eof
|
||||
|
||||
REM Función principal
|
||||
:main
|
||||
call :print_header
|
||||
|
||||
if "%1"=="" goto help
|
||||
if "%1"=="dev" goto dev
|
||||
if "%1"=="development" goto dev
|
||||
if "%1"=="prod" goto prod
|
||||
if "%1"=="production" goto prod
|
||||
if "%1"=="docker" goto docker
|
||||
if "%1"=="validate" goto validate
|
||||
if "%1"=="check" goto validate
|
||||
if "%1"=="backup" goto backup
|
||||
if "%1"=="restore" goto restore
|
||||
if "%1"=="help" goto help
|
||||
if "%1"=="--help" goto help
|
||||
if "%1"=="-h" goto help
|
||||
|
||||
echo ❌ Comando desconocido: %1
|
||||
echo.
|
||||
goto help
|
||||
|
||||
:dev
|
||||
call :backup_env
|
||||
call :setup_development
|
||||
call :validate_env
|
||||
goto end
|
||||
|
||||
:prod
|
||||
call :backup_env
|
||||
call :setup_production
|
||||
call :validate_env
|
||||
goto end
|
||||
|
||||
:docker
|
||||
call :backup_env
|
||||
call :setup_docker
|
||||
call :validate_env
|
||||
goto end
|
||||
|
||||
:validate
|
||||
call :validate_env
|
||||
goto end
|
||||
|
||||
:backup
|
||||
call :backup_env
|
||||
goto end
|
||||
|
||||
:restore
|
||||
call :backup_env
|
||||
call :restore_env
|
||||
goto end
|
||||
|
||||
:help
|
||||
call :show_help
|
||||
goto end
|
||||
|
||||
:end
|
||||
pause
|
||||
Reference in New Issue
Block a user