#!/bin/bash
# 第 2 章配套脚本 · 一键搭建 Kuikly 开发环境（macOS / Linux）
#
# 使用方法：
#   chmod +x setup.sh
#   ./setup.sh

set -e

echo "★ Kuikly 环境一键安装脚本"
echo "============================="

# ─────────────────────────────────
# 1. 检查 / 提示安装 JDK
# ─────────────────────────────────
echo ""
echo "[1/5] 检查 JDK..."
if ! command -v java &> /dev/null; then
    echo "  ✗ 未检测到 JDK"
    echo "  → 请先安装 JDK 17：https://www.oracle.com/java/technologies/downloads/"
    echo "  → 或 macOS 用 brew: brew install openjdk@17"
    exit 1
fi
JAVA_VER=$(java -version 2>&1 | head -1 | awk -F '"' '{print $2}')
echo "  ✔ JDK 版本：$JAVA_VER"

# ─────────────────────────────────
# 2. 检查 / 提示安装 Node
# ─────────────────────────────────
echo ""
echo "[2/5] 检查 Node.js..."
if ! command -v node &> /dev/null; then
    echo "  ✗ 未检测到 Node"
    echo "  → 请先安装 Node 16+：https://nodejs.org/"
    exit 1
fi
NODE_VER=$(node --version)
echo "  ✔ Node 版本：$NODE_VER"

# ─────────────────────────────────
# 3. 切换 npm 镜像（国内加速）
# ─────────────────────────────────
echo ""
echo "[3/5] 切换 npm 到国内镜像..."
npm config set registry https://registry.npmmirror.com/
echo "  ✔ npm registry：$(npm config get registry)"

# ─────────────────────────────────
# 4. 全局安装 create-kuikly-app
# ─────────────────────────────────
echo ""
echo "[4/5] 安装 create-kuikly-app..."
npm install -g create-kuikly-app
echo "  ✔ kuikly CLI 已安装：$(which kuikly)"

# ─────────────────────────────────
# 5. 配置 Gradle 国内镜像
# ─────────────────────────────────
echo ""
echo "[5/5] 配置 Gradle 全局镜像..."
mkdir -p ~/.gradle/init.d
cat > ~/.gradle/init.d/init.gradle.kts <<'EOF'
allprojects {
    repositories {
        // 腾讯 Maven 镜像（Kuikly 官方推荐）
        maven { url = uri("https://mirrors.tencent.com/nexus/repository/maven-tencent/") }
        // 阿里云镜像（通用 fallback）
        maven { url = uri("https://maven.aliyun.com/repository/public/") }
        maven { url = uri("https://maven.aliyun.com/repository/google/") }
        google()
        mavenCentral()
    }
}
EOF
echo "  ✔ Gradle init.gradle.kts 已配置"

# ─────────────────────────────────
# 验证
# ─────────────────────────────────
echo ""
echo "============================="
echo "★ 环境就绪！跑一遍 doctor 看看："
echo "  kuikly doctor"
echo ""
echo "★ 创建你的第一个工程："
echo "  kuikly create MyFirstKuikly --package com.example.myfirst"
echo ""
echo "★ 跑起来："
echo "  cd MyFirstKuikly && kuikly run android"
echo ""
