disco-reaper/build.bat
2026-03-30 01:03:05 +05:30

77 lines
2.3 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
cd /d "%~dp0"
echo --- Disco-Reaper Windows Build Script ---
REM Check for venv
IF NOT EXIST "venv" (
echo Creating virtual environment...
python -m venv venv
IF ERRORLEVEL 1 (
echo Error: Failed to create virtual environment.
echo Ensure Python is installed and added to PATH.
IF NOT DEFINED AUTO_BUILD pause
exit /b 1
)
)
echo Activating virtual environment...
call venv\Scripts\activate.bat
REM Self-healing pip check
python -m pip --version >nul 2>&1
IF ERRORLEVEL 1 (
echo Warning: pip is missing or broken in venv. Attempting repair...
python -m ensurepip --default-pip
IF ERRORLEVEL 1 (
echo Error: Failed to repair pip automatically.
echo Try recreating the venv: rmdir /s /q venv ^&^& python -m venv venv
IF NOT DEFINED AUTO_BUILD pause
exit /b 1
)
)
echo Ensuring build dependencies are up to date...
REM python -m pip install --upgrade pip --quiet
python -m pip install pyinstaller --quiet
python -m pip install -r requirements.txt --quiet
echo Cleaning previous build artifacts...
IF EXIST "build" rmdir /s /q build
IF EXIST "dist" rmdir /s /q dist
echo Starting PyInstaller build...
REM Get git version tag
set "GIT_VERSION=Unknown"
for /f "tokens=*" %%i in ('git describe --tags --abbrev^=0 2^>nul') do set "GIT_VERSION=%%i"
echo Baking version: %GIT_VERSION%
echo __version__ = "%GIT_VERSION%"> src\core\_baked_version.py
python -m PyInstaller --clean disco-reaper.spec
IF ERRORLEVEL 1 (
echo Error: PyInstaller build failed.
del /f src\core\_baked_version.py 2>nul
IF NOT DEFINED AUTO_BUILD pause
exit /b 1
)
echo Cleaning up baked version file...
del /f src\core\_baked_version.py 2>nul
echo Packaging release: disco-reaper-windows.zip...
cd dist
powershell -Command "Compress-Archive -Path 'DiscoReaper.exe' -DestinationPath 'disco-reaper-windows.zip' -Force" 2>nul
IF ERRORLEVEL 1 (
echo Warning: Failed to create zip. Files are available in dist\ directory.
) ELSE (
echo Package created: dist\disco-reaper-windows.zip
)
cd ..
echo -----------------------------------
echo Build complete!
echo Standalone executable: dist\DiscoReaper.exe
echo Release Package: dist\disco-reaper-windows.zip
echo ---
IF NOT DEFINED AUTO_BUILD pause