v2.0
This commit is contained in:
126
run.bat
Normal file
126
run.bat
Normal file
@@ -0,0 +1,126 @@
|
||||
@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
|
||||
Reference in New Issue
Block a user