#!/bin/bash

# ============================================
# 启动 sanguo_quant_live 自动监听服务
# 启动后，任何代码修改都会自动触发部署回测
# 完全无人值守！
# ============================================

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_FILE="$SCRIPT_DIR/auto_watcher.log"
PID_FILE="$SCRIPT_DIR/auto_watcher.pid"

start() {
    echo "启动 sanguo_quant_live 自动监听服务..."
    
    # 检查是否已经运行
    if [ -f "$PID_FILE" ]; then
        PID=$(cat "$PID_FILE")
        if kill -0 "$PID" 2>/dev/null; then
            echo "❌ 自动监听服务已经在运行 (PID: $PID)"
            exit 1
        fi
    fi
    
    # 后台启动（在虚拟环境中）
    nohup bash -c "source '$SCRIPT_DIR/vnpy_env/bin/activate' && python3 '$SCRIPT_DIR/auto_watcher.py'" >> "$LOG_FILE" 2>&1 &
    PID=$!
    echo "$PID" > "$PID_FILE"
    
    echo "✅ 自动监听服务已启动 (PID: $PID)"
    echo "📝 日志: $LOG_FILE"
    echo "🔍 现在您修改任何代码（策略/框架/配置）都会自动触发部署回测！"
    echo "🎯 完全无人值守，喝茶去吧！"
}

stop() {
    echo "停止自动监听服务..."
    
    if [ ! -f "$PID_FILE" ]; then
        echo "❌ 自动监听服务没有运行"
        exit 1
    fi
    
    PID=$(cat "$PID_FILE")
    kill "$PID" 2>/dev/null
    rm -f "$PID_FILE"
    
    echo "✅ 自动监听服务已停止"
}

status() {
    if [ -f "$PID_FILE" ]; then
        PID=$(cat "$PID_FILE")
        if kill -0 "$PID" 2>/dev/null; then
            echo "✅ 自动监听服务正在运行 (PID: $PID)"
        else
            echo "❌ PID 文件存在，但进程不存在"
        fi
    else
        echo "❌ 自动监听服务没有运行"
    fi
}

case "${1:-start}" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    restart)
        stop
        sleep 1
        start
        ;;
    *)
        echo "用法: $0 {start|stop|status|restart}"
        exit 1
        ;;
esac
