@echo off
setlocal enabledelayedexpansion

echo ============================================================
echo   BASSKIT - Generador de Wheel
echo ============================================================
echo.

REM Detectar directorio del script
set "SCRIPT_DIR=%~dp0"
cd /d "%SCRIPT_DIR%"

echo [1/7] Verificando Python...
where python >nul 2>&1
if errorlevel 1 (
	echo ERROR: No se encontro Python en el PATH.
	echo Instale Python 3.13 o superior.
	goto fin
)

REM Verificar version de Python
for /f "tokens=*" %%v in ('python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')"') do set "PY_VER=%%v"
echo   Python encontrado: %PY_VER%

python -c "import sys; sys.exit(0 if sys.version_info >= (3, 13) else 1)" 2>nul
if errorlevel 1 (
	echo ADVERTENCIA: Se recomienda Python 3.13 o superior.
	echo   Version detectada: %PY_VER%
)

echo.
echo [2/7] Creando entorno virtual si no existe...
if not exist ".venv" (
	echo   Creando .venv...
	python -m venv .venv
	if errorlevel 1 (
		echo ERROR: No se pudo crear el entorno virtual.
		goto fin
	)
	echo   Entorno virtual creado.
) else (
	echo   Entorno virtual existente encontrado.
)

echo.
echo [3/7] Activando entorno virtual...
call ".venv\Scripts\activate.bat"
if errorlevel 1 (
	echo ERROR: No se pudo activar el entorno virtual.
	goto fin
)

echo.
echo [4/7] Actualizando herramientas de build...
python -m pip install --upgrade pip setuptools wheel build --quiet
if errorlevel 1 (
	echo ERROR: No se pudieron actualizar las herramientas.
	goto fin
)
echo   pip, setuptools, wheel y build actualizados.

echo.
echo [5/7] Limpiando builds anteriores...
if exist "build" (
	rmdir /s /q "build" 2>nul
	echo   Directorio build eliminado.
)
if exist "dist" (
	rmdir /s /q "dist" 2>nul
	echo   Directorio dist eliminado.
)
for /d %%d in (src\*.egg-info) do (
	rmdir /s /q "%%d" 2>nul
	echo   %%d eliminado.
)
echo   Limpieza completada.

echo.
echo [6/7] Generando wheel...
python -m build --wheel
if errorlevel 1 (
	echo.
	echo ERROR: La generacion del wheel fallo.
	echo Revise los errores anteriores.
	goto fin
)

echo.
echo [7/7] Verificando resultado...
for %%f in (dist\*.whl) do (
	echo.
	echo ============================================================
	echo   WHEEL GENERADO CORRECTAMENTE
	echo   Archivo: %%f
	echo ============================================================
	echo.
	echo   Para instalar:
	echo     pip install "%%f"
	echo.
	echo   Para verificar:
	echo     python -c "import basskit; print(basskit.diagnostico())"
	echo.
)

if not exist "dist\*.whl" (
	echo ERROR: No se encontro ningun archivo .whl en dist/
)

:fin
echo.
echo Presione cualquier tecla para cerrar...
pause >nul
endlocal
