@echo off setlocal rem GUI launcher: double-click this file in Windows Explorer. set "MODULE_ROOT=%~dp0." set "PACKED_EXE=%MODULE_ROOT%\dist\Catalogizer.exe" set "LOCAL_PYTHON=%MODULE_ROOT%\.venv\Scripts\python.exe" set "LOCAL_PYTHONW=%MODULE_ROOT%\.venv\Scripts\pythonw.exe" rem A packed build needs neither Python nor PySide6, so it wins when present. if exist "%PACKED_EXE%" ( if /i "%~1"=="--check" ( "%PACKED_EXE%" --check if errorlevel 1 ( echo Catalogizer.exe is broken. Rebuild it with BUILD_EXE.bat. pause exit /b 1 ) echo Catalogizer: packed build is ready. exit /b 0 ) start "Catalogizer" /D "%MODULE_ROOT%" "%PACKED_EXE%" %* exit /b 0 ) if exist "%LOCAL_PYTHON%" ( set "CHECK_PYTHON=%LOCAL_PYTHON%" set "GUI_PYTHON=%LOCAL_PYTHONW%" ) else ( set "CHECK_PYTHON=python" where pythonw >nul 2>&1 if errorlevel 1 ( set "GUI_PYTHON=python" ) else ( set "GUI_PYTHON=pythonw" ) ) "%CHECK_PYTHON%" -c "import PySide6, pymupdf" >nul 2>&1 if errorlevel 1 ( echo Python with PySide6 and pymupdf is not available. echo. echo Either build a standalone Catalogizer.exe with BUILD_EXE.bat, echo or install the dependencies: echo python -m pip install -r "%MODULE_ROOT%\requirements.txt" echo. pause exit /b 1 ) if /i "%~1"=="--check" ( "%CHECK_PYTHON%" "%MODULE_ROOT%\catalog_gui.py" --check exit /b %errorlevel% ) rem pythonw starts the desktop application without an extra console window. start "Catalogizer" /D "%MODULE_ROOT%" "%GUI_PYTHON%" "%MODULE_ROOT%\catalog_gui.py" %*