#!/usr/bin/env bash
#
# CI 健康度看板一键生成脚本
# - 从 Gitea Actions API 拉取数据
# - 生成 HTML 可视化看板
# - 输出文件路径
#
# 用法:
#   bash scripts/ci/generate_ci_dashboard.sh [--days 7] [--output ci_dashboard.html]
#
# 环境变量:
#   GITEA_TOKEN    API Token（必需）
#   GITEA_URL      Gitea 地址（可选，默认 https://git.xiaoxiajianji.com）
#   GITEA_REPO     仓库（可选，默认 xiaoxia/xiaoxia-saas）
#

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"

# 默认参数
DAYS=7
OUTPUT="ci_dashboard.html"

# 解析参数
while [[ $# -gt 0 ]]; do
    case "$1" in
        --days)
            DAYS="$2"
            shift 2
            ;;
        --output|-o)
            OUTPUT="$2"
            shift 2
            ;;
        --help|-h)
            echo "用法: bash scripts/ci/generate_ci_dashboard.sh [--days 7] [--output ci_dashboard.html]"
            echo ""
            echo "选项:"
            echo "  --days N       统计最近 N 天 (默认 7)"
            echo "  --output PATH  HTML 输出路径 (默认 ci_dashboard.html)"
            echo "  --help         显示帮助"
            echo ""
            echo "环境变量:"
            echo "  GITEA_TOKEN    API Token（必需）"
            echo "  GITEA_URL      Gitea 地址"
            echo "  GITEA_REPO     仓库"
            exit 0
            ;;
        *)
            echo "未知参数: $1"
            exit 1
            ;;
    esac
done

# 检查 Python
if ! command -v python3 &> /dev/null; then
    echo "[ERROR] 未找到 python3，请先安装 Python 3"
    exit 1
fi

# 检查 Token
if [[ -z "${GITEA_TOKEN:-}" ]]; then
    echo "[ERROR] 请设置 GITEA_TOKEN 环境变量"
    exit 1
fi

echo "========================================"
echo "  CI 健康度看板生成器"
echo "========================================"
echo ""
echo "统计天数: ${DAYS} 天"
echo "输出文件: ${OUTPUT}"
echo ""

# 生成 HTML 看板
echo "[INFO] 正在拉取数据并生成看板..."
python3 "${SCRIPT_DIR}/ci_dashboard.py" \
    --days "${DAYS}" \
    --html \
    --html-output "${OUTPUT}"

echo ""
echo "========================================"
echo "  ✅ 看板生成完成！"
echo "========================================"
echo ""
echo "文件路径: $(realpath "${OUTPUT}")"
echo ""

# 如果在 macOS 上，尝试打开
if [[ "$(uname)" == "Darwin" ]]; then
    echo "[INFO] 正在打开浏览器..."
    open "${OUTPUT}"
fi
