Files
RemnaWaveBOT/run.bat
2026-04-22 18:34:13 +03:00

127 lines
2.5 KiB
Batchfile

@echo off
setlocal EnableExtensions
set "SCRIPT_DIR=%~dp0"
pushd "%SCRIPT_DIR%" >nul 2>&1
if errorlevel 1 (
echo [ERROR] Failed to switch to project directory:
echo %SCRIPT_DIR%
pause
exit /b 1
)
if not exist ".env" (
echo [ERROR] .env file was not found.
echo Copy .env.example to .env and fill in BOT_TOKEN, REMNAWAVE_* and DB_* values.
popd
pause
exit /b 1
)
call :find_python
if errorlevel 1 (
echo [ERROR] Python was not found in PATH.
echo Install Python 3.12+ and make sure ^`py^` or ^`python^` is available.
popd
pause
exit /b 1
)
call :ensure_venv
if errorlevel 1 (
popd
pause
exit /b 1
)
echo [INFO] Installing dependencies...
".venv\Scripts\python.exe" -m pip install -e .
if errorlevel 1 (
echo [ERROR] Failed to install dependencies
popd
pause
exit /b 1
)
echo [INFO] Starting bot...
".venv\Scripts\python.exe" main.py
set "EXIT_CODE=%ERRORLEVEL%"
if not "%EXIT_CODE%"=="0" (
echo [ERROR] Bot stopped with code %EXIT_CODE%
popd
pause
exit /b %EXIT_CODE%
)
popd
exit /b 0
:find_python
set "BOOTSTRAP_PY="
py -3 --version >nul 2>&1
if not errorlevel 1 (
set "BOOTSTRAP_PY=py -3"
echo [INFO] Using bootstrap interpreter: %BOOTSTRAP_PY%
exit /b 0
)
py --version >nul 2>&1
if not errorlevel 1 (
set "BOOTSTRAP_PY=py"
echo [INFO] Using bootstrap interpreter: %BOOTSTRAP_PY%
exit /b 0
)
python --version >nul 2>&1
if not errorlevel 1 (
set "BOOTSTRAP_PY=python"
echo [INFO] Using bootstrap interpreter: %BOOTSTRAP_PY%
exit /b 0
)
exit /b 1
:ensure_venv
set "RECREATE_VENV="
if not exist ".venv\Scripts\python.exe" (
set "RECREATE_VENV=1"
)
if not defined RECREATE_VENV (
".venv\Scripts\python.exe" -c "import sys; print(sys.executable)" >nul 2>&1
if errorlevel 1 (
set "RECREATE_VENV=1"
)
)
if defined RECREATE_VENV (
if exist ".venv" (
echo [WARN] Existing .venv is invalid or was created on another machine.
echo [INFO] Recreating virtual environment...
rmdir /s /q ".venv"
if exist ".venv" (
echo [ERROR] Failed to remove broken .venv
exit /b 1
)
) else (
echo [INFO] Creating virtual environment...
)
%BOOTSTRAP_PY% -m venv .venv
if errorlevel 1 (
echo [ERROR] Failed to create .venv
exit /b 1
)
)
".venv\Scripts\python.exe" -m pip --version >nul 2>&1
if errorlevel 1 (
echo [ERROR] Virtual environment exists, but pip is unavailable.
exit /b 1
)
exit /b 0