Files
SenSu/start.sh
T

66 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# SenSu 无头启动脚本 (Linux/macOS/Termux)
# 自动检测依赖完整性后启动
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR"
# ── 颜色 ──
RED='\033[31m'; GREEN='\033[32m'; YELLOW='\033[33m'; NC='\033[0m'
pass=0; fail=0
check() {
if command -v "$1" &>/dev/null || python3 -c "$2" 2>/dev/null; then
echo -e " ${GREEN}${NC} $3"
pass=$((pass+1))
else
echo -e " ${RED}${NC} $3 ${YELLOW}(缺失)${NC}"
fail=$((fail+1))
fi
}
echo "🐱 SenSu 依赖检测..."
echo ""
# ── 系统依赖 ──
check "python3" "" "Python 3.11+"
python3 -c "import sys; assert sys.version_info >= (3,11)" 2>/dev/null || {
echo -e " ${YELLOW}⚠ Python 版本过低,需要 3.11+${NC}"
fail=$((fail+1))
}
# ── Python 核心依赖 ──
check "" "import aiohttp" "aiohttp (Web 服务)"
check "" "import yaml" "PyYAML (配置文件)"
check "" "import textual" "Textual (TUI)"
check "" "import watchdog" "watchdog (热重载)"
check "" "import psutil" "psutil (系统监控)"
check "" "import rich" "rich (终端美化)"
# ── 配置文件 ──
if [ -f "config/framework/base_config.yaml" ]; then
echo -e " ${GREEN}${NC} base_config.yaml"
pass=$((pass+1))
elif [ -f "config/framework/base_config.yaml.example" ]; then
cp config/framework/base_config.yaml.example config/framework/base_config.yaml
echo -e " ${GREEN}${NC} 从模板创建 base_config.yaml"
pass=$((pass+1))
else
echo -e " ${RED}${NC} 配置文件缺失 (无模板可用)"
fail=$((fail+1))
fi
echo ""
if [ "$fail" -gt 0 ]; then
echo -e "${RED}$fail 项缺失,请先安装: pip install -r requirements.txt${NC}"
exit 1
fi
echo -e "${GREEN}✅ 所有依赖就绪 ($pass 项)${NC}"
echo ""
echo "🚀 启动 SenSu (无头模式)..."
echo " Web 面板: http://0.0.0.0:4200/SenSu"
echo ""
python3 main.py --headless