mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-03-20 22:07:00 +00:00
feat(claude): add dotbot-validate and config-warn hooks
This commit is contained in:
15
.claude/hooks/post-edit-config-warn.sh
Executable file
15
.claude/hooks/post-edit-config-warn.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
# Post-edit: warn when formatter/linter configs are changed,
|
||||
# since they affect the entire repo's code style.
|
||||
|
||||
fp=$(jq -r '.tool_input.file_path // empty')
|
||||
[ -z "$fp" ] || [ ! -f "$fp" ] && exit 0
|
||||
|
||||
case "$(basename "$fp")" in
|
||||
.editorconfig | biome.json | .prettierrc.json | .shellcheckrc | stylua.toml | .yamllint.yml)
|
||||
echo "NOTE: Formatter/linter config changed ($fp)." >&2
|
||||
echo "Run 'pre-commit run --all-files' to verify consistency." >&2
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
28
.claude/hooks/post-edit-dotbot-validate.sh
Executable file
28
.claude/hooks/post-edit-dotbot-validate.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
# Post-edit: validate Dotbot install.conf.yaml files after editing.
|
||||
# Checks YAML syntax and verifies link targets exist.
|
||||
|
||||
fp=$(jq -r '.tool_input.file_path // empty')
|
||||
[ -z "$fp" ] || [ ! -f "$fp" ] && exit 0
|
||||
|
||||
case "$fp" in
|
||||
*install.conf.yaml) ;;
|
||||
*) exit 0 ;;
|
||||
esac
|
||||
|
||||
# YAML syntax check
|
||||
if command -v yamllint > /dev/null; then
|
||||
if ! output=$(yamllint -d relaxed "$fp" 2>&1); then
|
||||
echo "Dotbot config YAML error in $fp:" >&2
|
||||
echo "$output" >&2
|
||||
exit 2
|
||||
fi
|
||||
elif command -v python3 > /dev/null; then
|
||||
if ! output=$(python3 -c "import yaml; yaml.safe_load(open('$fp'))" 2>&1); then
|
||||
echo "Dotbot config YAML parse error in $fp:" >&2
|
||||
echo "$output" >&2
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user