Files
SenSu/start.bat
T

99 lines
3.0 KiB
Batchfile

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
title SenSu Server
cd /d "%~dp0"
echo 🐱 SenSu 依赖检测...
echo.
set PASS=0
set FAIL=0
:: ── 检查 --no-venv 参数 ──
set NO_VENV=0
echo %* | findstr /i "\-\-no-venv" >nul && set NO_VENV=1
:: ── Python ──
if %NO_VENV% equ 1 (
set PYTHON=python
echo [INFO] --no-venv: 使用系统 Python
) else (
set PYTHON=%~dp0.venv\Scripts\python.exe
if not exist "%PYTHON%" (
echo [FAIL] .venv 未创建,请先运行: python -m venv .venv ^&^& .venv\Scripts\pip install -r requirements.txt
echo 或使用: start.bat --no-venv 跳过虚拟环境
pause & exit /b 1
)
)
"%PYTHON%" --version >nul 2>&1
if %errorlevel% equ 0 (
echo [OK] Python
set /a PASS+=1
) else (
echo [FAIL] Python 未安装
set /a FAIL+=1
)
:: ── Python 依赖 ──
"%PYTHON%" -c "import aiohttp" >nul 2>&1
if %errorlevel% equ 0 (echo [OK] aiohttp& set /a PASS+=1) else (echo [FAIL] aiohttp 缺失& set /a FAIL+=1)
"%PYTHON%" -c "import yaml" >nul 2>&1
if %errorlevel% equ 0 (echo [OK] PyYAML& set /a PASS+=1) else (echo [FAIL] PyYAML 缺失& set /a FAIL+=1)
"%PYTHON%" -c "import textual" >nul 2>&1
if %errorlevel% equ 0 (echo [OK] Textual& set /a PASS+=1) else (echo [FAIL] Textual 缺失& set /a FAIL+=1)
"%PYTHON%" -c "import watchdog" >nul 2>&1
if %errorlevel% equ 0 (echo [OK] watchdog& set /a PASS+=1) else (echo [FAIL] watchdog 缺失& set /a FAIL+=1)
"%PYTHON%" -c "import psutil" >nul 2>&1
if %errorlevel% equ 0 (echo [OK] psutil& set /a PASS+=1) else (echo [FAIL] psutil 缺失& set /a FAIL+=1)
"%PYTHON%" -c "import rich" >nul 2>&1
if %errorlevel% equ 0 (echo [OK] rich& set /a PASS+=1) else (echo [FAIL] rich 缺失& set /a FAIL+=1)
:: ── 配置文件 ──
if exist "config\framework\base_config.yaml" (
echo [OK] base_config.yaml
set /a PASS+=1
) else if exist "config\framework\base_config.yaml.example" (
copy "config\framework\base_config.yaml.example" "config\framework\base_config.yaml" >nul
echo [OK] 从模板创建 base_config.yaml
set /a PASS+=1
) else (
echo [FAIL] 配置文件缺失
set /a FAIL+=1
)
echo.
if %FAIL% gtr 0 (
echo [WARN] %FAIL% 项缺失,自动安装...
"%PYTHON%" -m pip install -r requirements.txt --no-warn-script-location --root-user-action=ignore 2>&1
if %errorlevel% neq 0 (
if %NO_VENV% equ 1 (
echo [FAIL] 安装失败,请手动执行: pip install -r requirements.txt
) else (
echo [FAIL] 安装失败,请手动执行: .venv\Scripts\pip install -r requirements.txt
)
pause
exit /b 1
)
echo [OK] 依赖安装完成
)
echo [OK] 所有依赖就绪 (%PASS% 项)
echo.
echo 🚀 启动 SenSu (无头模式)...
echo Web 面板: http://0.0.0.0:4200/SenSu
echo.
:: 确保项目根目录在 Python 搜索路径中 (嵌入式 CPython 需要)
set PYTHONPATH=%~dp0;%PYTHONPATH%
"%PYTHON%" main.py --headless
pause