#!/bin/bash

# OpenClaw Config Guardian 一键安装脚本
# 支持: npm install, npx, curl | bash

set -e

echo "🛡️  OpenClaw Config Guardian 安装器"
echo "======================================"

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 检查 Node.js
if ! command -v node &> /dev/null; then
    echo -e "${RED}❌ 未检测到 Node.js，请先安装 Node.js 18+${NC}"
    echo "   访问: https://nodejs.org/"
    exit 1
fi

NODE_VERSION=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$NODE_VERSION" -lt 18 ]; then
    echo -e "${RED}❌ Node.js 版本过低，需要 18+，当前: $(node --version)${NC}"
    exit 1
fi

echo -e "${GREEN}✓ Node.js $(node --version)${NC}"

# 检查 npm
if ! command -v npm &> /dev/null; then
    echo -e "${RED}❌ 未检测到 npm${NC}"
    exit 1
fi

echo -e "${GREEN}✓ npm $(npm --version)${NC}"

# 检查 OpenClaw
if ! command -v openclaw &> /dev/null; then
    echo -e "${YELLOW}⚠️  未检测到 OpenClaw CLI${NC}"
    echo "   插件仍可安装，但部分功能需要 OpenClaw"
else
    echo -e "${GREEN}✓ OpenClaw 已安装${NC}"
fi

echo ""
echo "📦 正在安装 @openclaw/config-guardian..."
echo ""

# 安装方式选择
if [ "$1" == "--local" ] || [ "$1" == "-l" ]; then
    # 本地开发安装
    echo "🔧 本地开发模式"
    npm install -g .
else
    # 从 npm 安装
    npm install -g @openclaw/config-guardian@latest
fi

echo ""
echo -e "${GREEN}✅ 安装完成！${NC}"
echo ""
echo "使用方法:"
echo ""
echo "  命令行:"
echo "    ocg status          - 查看状态"
echo "    ocg backup          - 立即备份"
echo "    ocg restore <id>    - 回滚到指定备份"
echo "    ocg list            - 列出所有备份"
echo "    ocg webui           - 启动 Web UI"
echo "    ocg help            - 显示帮助"
echo ""
echo "  npx 方式 (无需全局安装):"
echo "    npx @openclaw/config-guardian status"
echo "    npx @openclaw/config-guardian webui"
echo ""
echo "🌐 Web UI 默认地址: http://localhost:3456"
echo ""
echo "配置文件: ~/.openclaw/extensions/openclaw-config-guardian/config.json"
echo ""

# 提示启动 Web UI
read -p "是否立即启动 Web UI? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    ocg webui
fi