#!/bin/bash

# Gitea Webhook Ambassador - 版本检查脚本
# 用于区分 Go 版本和 Python 版本

echo "🔍 检查 Gitea Webhook Ambassador 版本..."

# 检查端口 8000 (Python 版本默认端口)
echo "📡 检查端口 8000 (Python 版本)..."
if lsof -i :8000 > /dev/null 2>&1; then
    PID=$(lsof -ti :8000)
    PROCESS=$(ps -p $PID -o comm= 2>/dev/null)
    echo "✅ 端口 8000 被占用 (PID: $PID, 进程: $PROCESS)"
    
    # 检查是否是 Python 进程
    if echo "$PROCESS" | grep -q "python\|uvicorn"; then
        echo "🐍 检测到 Python 版本正在运行"
        
        # 尝试访问 Python 版本的 API
        if curl -s http://localhost:8000/api/health > /dev/null 2>&1; then
            echo "✅ Python 版本 API 响应正常"
            echo "🌐 访问地址: http://localhost:8000"
            echo "📊 仪表板: http://localhost:8000/dashboard"
        else
            echo "⚠️  Python 版本进程存在但 API 无响应"
        fi
    else
        echo "⚠️  端口 8000 被其他进程占用"
    fi
else
    echo "❌ 端口 8000 未被占用 (Python 版本未运行)"
fi

echo ""

# 检查端口 8080 (Go 版本默认端口)
echo "📡 检查端口 8080 (Go 版本)..."
if lsof -i :8080 > /dev/null 2>&1; then
    PID=$(lsof -ti :8080)
    PROCESS=$(ps -p $PID -o comm= 2>/dev/null)
    echo "✅ 端口 8080 被占用 (PID: $PID, 进程: $PROCESS)"
    
    # 检查是否是 Go 进程
    if echo "$PROCESS" | grep -q "gitea-webhook-ambassador"; then
        echo "🚀 检测到 Go 版本正在运行"
        
        # 尝试访问 Go 版本的 API
        if curl -s http://localhost:8080/health > /dev/null 2>&1; then
            echo "✅ Go 版本 API 响应正常"
            echo "🌐 访问地址: http://localhost:8080"
        else
            echo "⚠️  Go 版本进程存在但 API 无响应"
        fi
    else
        echo "⚠️  端口 8080 被其他进程占用"
    fi
else
    echo "❌ 端口 8080 未被占用 (Go 版本未运行)"
fi

echo ""

# 检查 PID 文件
echo "📁 检查 PID 文件..."

# Python 版本 PID 文件
PYTHON_PID_FILE="/home/nicolas/freeleaps-ops/apps/gitea-webhook-ambassador-python/service.pid"
if [ -f "$PYTHON_PID_FILE" ]; then
    PYTHON_PID=$(cat "$PYTHON_PID_FILE")
    if ps -p $PYTHON_PID > /dev/null 2>&1; then
        echo "✅ Python 版本 PID 文件存在 (PID: $PYTHON_PID)"
    else
        echo "⚠️  Python 版本 PID 文件存在但进程不存在"
    fi
else
    echo "❌ Python 版本 PID 文件不存在"
fi

# Go 版本 PID 文件 (如果存在)
GO_PID_FILE="/home/nicolas/freeleaps-ops/apps/gitea-webhook-ambassador/service.pid"
if [ -f "$GO_PID_FILE" ]; then
    GO_PID=$(cat "$GO_PID_FILE")
    if ps -p $GO_PID > /dev/null 2>&1; then
        echo "✅ Go 版本 PID 文件存在 (PID: $GO_PID)"
    else
        echo "⚠️  Go 版本 PID 文件存在但进程不存在"
    fi
else
    echo "❌ Go 版本 PID 文件不存在"
fi

echo ""

# 总结
echo "📊 总结:"
echo "----------------------------------------"

PYTHON_RUNNING=false
GO_RUNNING=false

# 检查 Python 版本
if lsof -i :8000 > /dev/null 2>&1; then
    PID=$(lsof -ti :8000)
    PROCESS=$(ps -p $PID -o comm= 2>/dev/null)
    if echo "$PROCESS" | grep -q "python\|uvicorn"; then
        PYTHON_RUNNING=true
    fi
fi

# 检查 Go 版本
if lsof -i :8080 > /dev/null 2>&1; then
    PID=$(lsof -ti :8080)
    PROCESS=$(ps -p $PID -o comm= 2>/dev/null)
    if echo "$PROCESS" | grep -q "gitea-webhook-ambassador"; then
        GO_RUNNING=true
    fi
fi

if [ "$PYTHON_RUNNING" = true ] && [ "$GO_RUNNING" = true ]; then
    echo "⚠️  两个版本都在运行！"
    echo "🐍 Python 版本: http://localhost:8000"
    echo "🚀 Go 版本: http://localhost:8080"
elif [ "$PYTHON_RUNNING" = true ]; then
    echo "✅ 当前运行: Python 版本"
    echo "🌐 访问地址: http://localhost:8000"
elif [ "$GO_RUNNING" = true ]; then
    echo "✅ 当前运行: Go 版本"
    echo "🌐 访问地址: http://localhost:8080"
else
    echo "❌ 没有检测到任何版本在运行"
fi

echo "----------------------------------------" 