Files
scaffold/scripts/install-skill.sh
T
baozaotumao 39fe248f9f feat: 重组为标准 skill 包结构 + 修复 verify.sh bash 3.2 兼容
- 新增 .claude/skills/new-project/SKILL.md(标准 skill 格式)
- install-skill.sh 安装时组装 SKILL.md + verify.sh,单一源无重复
- verify.sh 改用索引数组替代 declare -A,兼容 macOS bash 3.2
- log_pass/log_skip 显式 return 0,避免 set -e 下非 verbose 误退出
- README 改为 skill 优先;补全 copier.yml/scripts/template 入库
2026-06-01 21:19:45 -07:00

52 lines
1.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# 把 new-project skill 安装到 ~/.claude/skills/(全局,任意项目可用)。
#
# 单一源原则:verify.sh 只在仓库根 scripts/ 维护一份,
# 本脚本在安装时把它和 SKILL.md 组装进 ~/.claude/skills/new-project/
# 使安装后的 skill 自包含(无需仓库即可运行验证)。
#
# 用法:
# curl -fsSL https://raw.githubusercontent.com/baozaotumao2025/scaffold/main/scripts/install-skill.sh | bash
# 或在已克隆的仓库内:
# ./scripts/install-skill.sh
set -euo pipefail
SKILL_NAME="new-project"
DEST="$HOME/.claude/skills/$SKILL_NAME"
RAW_BASE="https://raw.githubusercontent.com/baozaotumao2025/scaffold/main"
SKILL_MD_URL="$RAW_BASE/.claude/skills/$SKILL_NAME/SKILL.md"
VERIFY_URL="$RAW_BASE/scripts/verify.sh"
# 在仓库内运行时优先用本地文件,否则从 GitHub 拉取
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOCAL_SKILL_MD="$SCRIPT_DIR/../.claude/skills/$SKILL_NAME/SKILL.md"
LOCAL_VERIFY="$SCRIPT_DIR/verify.sh"
fetch() { # fetch <url> <dest>
if command -v curl &>/dev/null; then
curl -fsSL "$1" -o "$2"
elif command -v wget &>/dev/null; then
wget -qO "$2" "$1"
else
echo "错误:需要 curl 或 wget" >&2
exit 1
fi
}
mkdir -p "$DEST/scripts"
if [[ -f "$LOCAL_SKILL_MD" && -f "$LOCAL_VERIFY" ]]; then
echo "→ 从本地仓库组装安装"
cp "$LOCAL_SKILL_MD" "$DEST/SKILL.md"
cp "$LOCAL_VERIFY" "$DEST/scripts/verify.sh"
else
echo "→ 从 GitHub 组装安装"
fetch "$SKILL_MD_URL" "$DEST/SKILL.md"
fetch "$VERIFY_URL" "$DEST/scripts/verify.sh"
fi
chmod +x "$DEST/scripts/verify.sh"
echo "✓ 已安装 skill 到 $DEST"
echo " 在任意项目中打开 Claude Code,输入 /$SKILL_NAME 或描述\"新建项目\"即可触发"