claude-app/.claude/hooks/block-cargo-lock.sh

16 lines
481 B
Bash
Raw Normal View History

#!/bin/bash
# Block direct edits to Cargo.lock — it should only change via cargo
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
if [[ "$FILE_PATH" == *"Cargo.lock" ]]; then
echo '{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "deny",
"permissionDecisionReason": "Cargo.lock is auto-generated. Use cargo to update dependencies."
}
}'
else
exit 0
fi