@echo off setlocal ENABLEDELAYEDEXPANSION set "FORCE_RECREATE=0" if /I "%~1"=="--recreate" set "FORCE_RECREATE=1" for %%i in ("%~dp0..") do set "PROJECT_ROOT=%%~fi" set "VENV_DIR=%PROJECT_ROOT%\.offline-venv" set "WHEELHOUSE=%PROJECT_ROOT%\dist\wheelhouse" if not exist "%WHEELHOUSE%" ( echo Wheelhouse directory not found: "%WHEELHOUSE%" exit /b 1 ) if exist "%VENV_DIR%" ( if "%FORCE_RECREATE%"=="1" ( echo Removing existing virtual environment "%VENV_DIR%" ... rmdir /S /Q "%VENV_DIR%" ) ) if not exist "%VENV_DIR%" ( echo Creating virtual environment... python -m venv "%VENV_DIR%" if errorlevel 1 exit /b 1 ) set "PYTHON_PATH=%VENV_DIR%\Scripts\python.exe" if not exist "%PYTHON_PATH%" ( echo Python executable not found: "%PYTHON_PATH%" exit /b 1 ) "%PYTHON_PATH%" -m pip install --no-index --find-links "%WHEELHOUSE%" -r "%PROJECT_ROOT%\requirements.txt" if errorlevel 1 exit /b 1 echo Offline virtual environment is ready. echo To start the application run: echo call "%VENV_DIR%\Scripts\activate.bat" echo uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload endlocal