#!/bin/bash

# ============================================
# 启动 Git Webhook 自动触发服务
# GitHub/Gitee push 后自动触发全流程部署回测
# ============================================

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

start() {
    echo "启动 Git Webhook 自动触发服务..."
    
    # 检查是否已经运行
    if [ -f "$PID_FILE" ]; then
        PID=$(cat "$PID_FILE")
        if kill -0 "$PID" 2>/dev/null; then
            echo "❌ Webhook 服务已经在运行 (PID: $PID)"
            exit 1
        fi
    fi
    
    # 后台启动（在虚拟环境中）
    nohup bash -c "source '$SCRIPT_DIR/vnpy_env/bin/activate' && python3 '$SCRIPT_DIR/git_webhook_server.py'" >> "$LOG_FILE" 2>&1 &
    PID=$!
    echo "$PID" > "$PID_FILE"
    
    echo "✅ Webhook 服务已启动 (PID: $PID)"
    echo "📝 日志: $LOG_FILE"
    echo "🌐 监听地址: http://0.0.0.0:8899/webhook"
    echo "🔑 Token: sanguo-quant-2026"
    echo "🚀 Git push 后自动触发全流程部署回测！"
}

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

status() {
    if [ -f "$PID_FILE" ]; then
        PID=$(cat "$PID_FILE")
        if kill -0 "$PID" 2>/dev/null; then
            echo "✅ Webhook 服务正在运行 (PID: $PID)"
        else
            echo "❌ PID 文件存在，但进程不存在"
        fi
    else
        echo "❌ Webhook 服务没有运行"
    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
