Files
meta/tools/find-skill-refs.sh
T

35 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env sh
# find-skill-refs.sh — 掃描一個技能在所有 jsc domain 存取庫裡的引用,供刪除技能前盤點用。
#
# 用法: find-skill-refs.sh <domain> <skill-name>
#
# 掃描樣式:
# 1. 技能名稱字面 {skill-name}
# 2. 指令形式 /jsc-{domain}:{skill-name}
# 這兩個樣式已涵蓋其他 SKILL.md 的引用、domain README 的「Skills 目錄」小節、
# plugins/meta 兩份 marketplace.json 與其在各 domain 存取庫的同步副本、tools/ 腳本、
# jsc-hooks 接線等位置——只要檔案裡出現技能名稱或指令形式就會被列出。
#
# 掃描範圍: /root/plugins 底下所有 domain 存取庫,排除 .git 目錄。
# 輸出: 命中檔案清單(去重、排序),一行一個路徑;exit 0 一律成功,即使沒有命中。
set -eu
usage() {
echo 'usage: find-skill-refs.sh <domain> <skill-name>' >&2
exit 2
}
[ "$#" -eq 2 ] || usage
DOMAIN=$1
SKILL=$2
ROOT=/root/plugins
[ -d "$ROOT" ] || { echo "找不到 plugins 根目錄: $ROOT" >&2; exit 1; }
PATTERN1="$SKILL"
PATTERN2="/jsc-${DOMAIN}:${SKILL}"
grep -rlE --exclude-dir=.git -e "$PATTERN1" -e "$PATTERN2" "$ROOT" 2>/dev/null | sort -u
exit 0