Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d6e1d6360e | |||
| 2eb9b2aaaa |
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
# check-vendor-drift.sh — 薄殼裡那份複製品,跟 ISEP 真身還一不一樣?
|
||||
#
|
||||
# 🔴 為什麼需要這支(leo 2026-08-21 問的那句):
|
||||
# 「現在雲端 plugin 寫死如果修改會跟著改嗎?」——**不會。**
|
||||
# 複製品是快照。ISEP 改了,薄殼不會自己跟;要有人重跑 vendor-to-shell.py 再推。
|
||||
# 實證:ISEP 從 0.3.1 一路改到 0.3.4,雲端完全不知道,
|
||||
# 直到有人手動重跑一次。**漂了沒有任何人會知道**——這支就是那個「知道」。
|
||||
#
|
||||
# 用法:check-vendor-drift.sh <薄殼 repo 路徑>
|
||||
# exit 0 = 一致 exit 1 = 漂了(印出差在哪)
|
||||
set -uo pipefail
|
||||
SHELL_REPO="${1:-}"
|
||||
[ -d "$SHELL_REPO/.claude/isep" ] || { echo "用法:$0 <薄殼 repo 路徑>" >&2; exit 2; }
|
||||
|
||||
ISEP="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
TMP=$(mktemp -d)
|
||||
trap 'rm -rf "$TMP"' EXIT
|
||||
|
||||
ISEP_V=$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$ISEP/.claude-plugin/plugin.json" | head -1)
|
||||
SH_V=$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$SHELL_REPO/.claude/isep/.claude-plugin/plugin.json" 2>/dev/null | head -1)
|
||||
|
||||
if [ "$ISEP_V" != "$SH_V" ]; then
|
||||
echo "❌ 版本不同:ISEP 真身=$ISEP_V,薄殼裡的複製品=${SH_V:-(讀不到)}"
|
||||
echo " 修法: python3 $ISEP/scripts/vendor-to-shell.py"
|
||||
echo " 再把 $ISEP/.shell-payload/dot-claude/ 蓋進 $SHELL_REPO/.claude/ 後推"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 版本一樣不代表內容一樣——重新產一份比對,才抓得到「改了東西忘了升版」
|
||||
python3 "$ISEP/scripts/vendor-to-shell.py" >/dev/null 2>&1 || { echo "❌ vendor 產生失敗" >&2; exit 2; }
|
||||
# 排除「執行期才產生」的東西:它們本來就只存在於跑過的那一邊,不是漂移。
|
||||
# pending-verification/ 待驗工作單(hook 執行時寫)
|
||||
# pending-main-push/ 推送請求留底
|
||||
# *.log 各閘的留痕
|
||||
# __pycache__/ python import 時就地產生
|
||||
if diff -rq \
|
||||
-x pending-verification -x pending-main-push -x '*.log' -x __pycache__ -x '*.pyc' \
|
||||
"$ISEP/.shell-payload/dot-claude" "$SHELL_REPO/.claude" > "$TMP/d" 2>&1; then
|
||||
echo "✅ 一致:薄殼複製品=ISEP v$ISEP_V,逐檔相同"
|
||||
exit 0
|
||||
fi
|
||||
echo "❌ 版本相同($ISEP_V)但內容不同 —— 有人改了東西沒升版:"
|
||||
head -12 "$TMP/d"
|
||||
exit 1
|
||||
Reference in New Issue
Block a user