#!/bin/bash # AirPlan V2 安装脚本测试 # 模拟运行安装脚本的关键步骤(不实际克隆) set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PLUGIN_NAME="airplan-v2" SKILLS_DIR="$HOME/.claude/skills" echo "==========================================" echo "AirPlan V2 安装脚本测试" echo "==========================================" # 测试1: 检查 Python 版本 echo "[测试1] 检查 Python 版本..." python3 --version || { echo "错误: 需要 Python 3"; exit 1; } echo "✓ Python 版本检查通过" # 测试2: 检查必要工具 echo "[测试2] 检查必要工具..." command -v git >/dev/null 2>&1 || { echo "错误: 需要 git"; exit 1; } echo "✓ git 可用" # 测试3: 创建测试 skills 目录 echo "[测试3] 测试目录创建..." TEST_DIR=$(mktemp -d) mkdir -p "$TEST_DIR/test-skills" echo "✓ 目录创建成功: $TEST_DIR" # 测试4: 模拟插件检查 echo "[测试4] 模拟插件结构检查..." # 创建模拟的 plugin.json mkdir -p "$TEST_DIR/airplan-v2/.claude-plugin" cat > "$TEST_DIR/airplan-v2/.claude-plugin/plugin.json" << 'PLUGIN_JSON' { "$schema": "https://anthropic.com/claude-code/plugin.schema.json", "name": "airplan-v2", "version": "2.0.0" } PLUGIN_JSON # 创建模拟的 SKILL.md mkdir -p "$TEST_DIR/airplan-v2/skills/airplan" cat > "$TEST_DIR/airplan-v2/skills/airplan/SKILL.md" << 'SKILL_MD' # AirPlan V2 SKILL_MD if [ ! -f "$TEST_DIR/airplan-v2/.claude-plugin/plugin.json" ]; then echo "错误: plugin.json 不存在" exit 1 fi echo "✓ plugin.json 存在" if [ ! -f "$TEST_DIR/airplan-v2/skills/airplan/SKILL.md" ]; then echo "错误: SKILL.md 不存在" exit 1 fi echo "✓ SKILL.md 存在" # 测试5: 检查依赖工具 echo "[测试5] 检查依赖工具..." command -v xvfb-run >/dev/null 2>&1 && echo " - xvfb-run: ✓" || echo " - xvfb-run: ✗ (可选)" command -v ffmpeg >/dev/null 2>&1 && echo " - ffmpeg: ✓" || echo " - ffmpeg: ✗ (可选)" command -v cmake >/dev/null 2>&1 && echo " - cmake: ✓" || echo " - cmake: ✗ (可选)" # 清理测试目录 rm -rf "$TEST_DIR" echo "" echo "==========================================" echo "所有测试通过! ✓" echo "=========================================="