Files
CloudRecoveryAS/scripts/dev-setup.ps1

129 lines
4.9 KiB
PowerShell

# Preparación del ENTORNO DE DESARROLLO en Windows: verifica Python/7-Zip/ODBC del
# sistema, crea el venv e instala requirements.txt para correr `python runner.py`.
#
# NO es el instalador de despliegue. Para instalar el binario compilado en un servidor
# usa install.ps1 (raíz del repo), que es autocontenido y no necesita nada de esto.
Write-Host "===============================================" -ForegroundColor Cyan
Write-Host "CloudRestoreAS - Entorno de desarrollo" -ForegroundColor Cyan
Write-Host "===============================================" -ForegroundColor Cyan
Write-Host ""
# Verificar Python
Write-Host "1. Verificando Python..." -ForegroundColor Yellow
$pythonVersion = python --version 2>$null
if (-not $pythonVersion) {
Write-Host "❌ Python no está instalado o no está en el PATH" -ForegroundColor Red
Write-Host " Descarga Python 3.11+ desde: https://www.python.org/downloads/" -ForegroundColor Yellow
Read-Host "Presiona Enter para salir..."
exit 1
}
Write-Host "$pythonVersion" -ForegroundColor Green
# Verificar versión de Python
$versionString = $pythonVersion -replace "Python ", ""
$version = [version]($versionString.Split()[0])
if ($version -lt [version]"3.11") {
Write-Host "❌ Python $version es demasiado antiguo. Se requiere 3.11+" -ForegroundColor Red
Read-Host "Presiona Enter para salir..."
exit 1
}
# Verificar 7-Zip
Write-Host ""
Write-Host "2. Verificando 7-Zip..." -ForegroundColor Yellow
$sevenZipPaths = @(
"C:\Program Files\7-Zip\7z.exe",
"D:\Program Files\7-Zip\7z.exe",
"C:\Program Files (x86)\7-Zip\7z.exe"
)
$sevenZipFound = $false
foreach ($path in $sevenZipPaths) {
if (Test-Path $path) {
Write-Host "✅ 7-Zip encontrado en: $path" -ForegroundColor Green
$sevenZipFound = $true
break
}
}
if (-not $sevenZipFound) {
Write-Host "⚠️ 7-Zip no encontrado en ubicaciones estándar" -ForegroundColor Yellow
Write-Host " Descarga 7-Zip desde: https://www.7-zip.org/" -ForegroundColor Yellow
Write-Host " (Puedes configurar la ruta manualmente en la aplicación)" -ForegroundColor Cyan
}
# Verificar ODBC Driver
Write-Host ""
Write-Host "3. Verificando ODBC Driver for SQL Server..." -ForegroundColor Yellow
$odbcDrivers = Get-OdbcDriver | Where-Object {$_.Name -like "*SQL Server*"}
if ($odbcDrivers) {
Write-Host "✅ ODBC Driver encontrado:" -ForegroundColor Green
$odbcDrivers | ForEach-Object { Write-Host " - $($_.Name)" -ForegroundColor Gray }
} else {
Write-Host "⚠️ ODBC Driver for SQL Server no encontrado" -ForegroundColor Yellow
Write-Host " Descarga desde: https://aka.ms/downloadmsodbcsql" -ForegroundColor Yellow
Write-Host " (Requerido para conectar con SQL Server)" -ForegroundColor Cyan
}
# Crear entorno virtual
Write-Host ""
Write-Host "4. Creando entorno virtual..." -ForegroundColor Yellow
if (Test-Path "venv") {
Write-Host " El entorno virtual ya existe, omitiendo..." -ForegroundColor Gray
} else {
python -m venv venv
if ($LASTEXITCODE -eq 0) {
Write-Host "✅ Entorno virtual creado" -ForegroundColor Green
} else {
Write-Host "❌ Error creando entorno virtual" -ForegroundColor Red
Read-Host "Presiona Enter para salir..."
exit 1
}
}
# Activar entorno virtual
Write-Host ""
Write-Host "5. Instalando dependencias..." -ForegroundColor Yellow
& ".\venv\Scripts\python.exe" -m pip install --upgrade pip
& ".\venv\Scripts\pip.exe" install -r requirements.txt
if ($LASTEXITCODE -eq 0) {
Write-Host "✅ Dependencias instaladas" -ForegroundColor Green
} else {
Write-Host "❌ Error instalando dependencias" -ForegroundColor Red
Read-Host "Presiona Enter para salir..."
exit 1
}
# Crear directorios necesarios
Write-Host ""
Write-Host "6. Creando directorios..." -ForegroundColor Yellow
$dirs = @("data", "logs")
foreach ($dir in $dirs) {
if (-not (Test-Path $dir)) {
New-Item -ItemType Directory -Path $dir | Out-Null
Write-Host "✅ Creado: $dir" -ForegroundColor Green
} else {
Write-Host " $dir ya existe" -ForegroundColor Gray
}
}
# Resumen
Write-Host ""
Write-Host "===============================================" -ForegroundColor Green
Write-Host "Instalación Completada" -ForegroundColor Green
Write-Host "===============================================" -ForegroundColor Green
Write-Host ""
Write-Host "Para ejecutar la aplicación:" -ForegroundColor Cyan
Write-Host " 1. Activa el entorno virtual:" -ForegroundColor White
Write-Host " .\venv\Scripts\Activate.ps1" -ForegroundColor Yellow
Write-Host " 2. Ejecuta la aplicación:" -ForegroundColor White
Write-Host " python runner.py" -ForegroundColor Yellow
Write-Host ""
Write-Host "O ejecuta directamente:" -ForegroundColor Cyan
Write-Host " .\venv\Scripts\python.exe runner.py" -ForegroundColor Yellow
Write-Host ""
Write-Host "Lee el README.md para configuración completa." -ForegroundColor Cyan
Write-Host ""
Read-Host "Presiona Enter para salir..."