开发机迁移
This commit is contained in:
24
.claude/hooks/pre_demo_protect.py
Normal file
24
.claude/hooks/pre_demo_protect.py
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python3
|
||||
"""PreToolUse hook: 保护 demo-miniprogram 目录不被删除或移入 _DEL/"""
|
||||
import json, re, sys
|
||||
|
||||
try:
|
||||
data = json.load(sys.stdin)
|
||||
except Exception:
|
||||
sys.exit(0)
|
||||
|
||||
tool = data.get("tool_name", "")
|
||||
tool_input = data.get("tool_input") or {}
|
||||
|
||||
DEMO_DIR = "demo-miniprogram"
|
||||
|
||||
if tool == "Bash":
|
||||
cmd = tool_input.get("command", "")
|
||||
# 检查命令是否在对 demo-miniprogram 执行删除/移动操作
|
||||
if DEMO_DIR in cmd and re.search(r"\b(rm|rmdir|del|move|mv)\b", cmd, re.IGNORECASE):
|
||||
# 允许 mv 到非 _DEL 目录(如正常重命名),但阻止移入 _DEL
|
||||
if re.search(r"\brm\b|\brmdir\b|\bdel\b", cmd, re.IGNORECASE) or "_DEL" in cmd:
|
||||
print(json.dumps({
|
||||
"decision": "block",
|
||||
"reason": f"[demo-protect] apps/{DEMO_DIR}/ 禁止删除或移入 _DEL/。该目录是 UI 样式标杆校对基准。"
|
||||
}))
|
||||
Reference in New Issue
Block a user