@echo off
setlocal enableextensions
title Instalador de AegisOps Agent
:: --- Auto-elevar a administrador ---
net session >nul 2>&1
if %errorlevel% neq 0 (
  echo Solicitando permisos de administrador...
  powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
  exit /b
)

set "SERVER=https://0.0.0.0:3000"
echo.
echo   Pega tu TOKEN de enrolamiento y presiona Enter.
echo   Lo obtienes en la app: Agentes ^> Enrolar ^> Generar token.
echo.
set /p "TOKEN=Token: "
if "%TOKEN%"=="" ( echo. & echo   Token vacio. Cierra y vuelve a intentar. & pause & exit /b 1 )
set "DIR=%ProgramFiles%\AegisOps"
set "EXE=%DIR%\aegisops-agent.exe"

echo ============================================
echo   Instalando AegisOps Agent...
echo ============================================
if not exist "%DIR%" mkdir "%DIR%"

echo Descargando el agente...
powershell -NoProfile -Command "try { [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-WebRequest '%SERVER%/downloads/aegisops-agent.exe' -OutFile '%EXE%' -UseBasicParsing } catch { Write-Host 'ERROR: no se pudo descargar el agente.'; exit 1 }"
if not exist "%EXE%" ( echo ERROR: descarga fallida. & pause & exit /b 1 )

:: Recrear el servicio
sc stop AegisOpsAgent >nul 2>&1
sc delete AegisOpsAgent >nul 2>&1
sc create AegisOpsAgent binPath= "\"%EXE%\"" start= auto DisplayName= "AegisOps Agent" >nul
sc description AegisOpsAgent "Agente de telemetria e inventario de AegisOps" >nul

:: Configuracion del servicio (variables de entorno propias del servicio)
reg add "HKLM\SYSTEM\CurrentControlSet\Services\AegisOpsAgent" /v Environment /t REG_MULTI_SZ /d "AEGIS_SERVER_URL=%SERVER%\0AEGIS_TOKEN=%TOKEN%" /f >nul

sc start AegisOpsAgent >nul

echo.
echo   Listo. AegisOps Agent quedo instalado y en ejecucion.
echo   El equipo aparecera en tu flota en unos segundos.
echo.
timeout /t 10 >nul