Replace full shell script hooks with thin shims that delegate to 'bd hooks run <hook-name>'. This eliminates hook version drift - upgrading bd automatically updates hook behavior. Changes: - Add 'bd hooks run' subcommand with hook logic in Go - Convert templates to minimal shims (~17 lines each) - Shims use '# bd-shim v1' marker (format version, not bd version) - Update version checking to recognize shim format - Shims are never marked as "outdated" Benefits: - No more manual 'bd hooks install --force' after upgrades - Hook logic always matches installed bd version - Follows pattern used by husky, pre-commit, lefthook Migration: Run 'bd hooks install --force' one final time. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
19 lines
561 B
Bash
Executable File
19 lines
561 B
Bash
Executable File
#!/bin/sh
|
|
# bd-shim v1
|
|
#
|
|
# bd (beads) pre-push hook - thin shim
|
|
#
|
|
# This shim delegates to 'bd hooks run pre-push' which contains
|
|
# the actual hook logic. This pattern ensures hook behavior is always
|
|
# in sync with the installed bd version - no manual updates needed.
|
|
|
|
# Check if bd is available
|
|
if ! command -v bd >/dev/null 2>&1; then
|
|
echo "Warning: bd command not found in PATH, skipping pre-push hook" >&2
|
|
echo " Install bd: brew install steveyegge/tap/bd" >&2
|
|
echo " Or add bd to your PATH" >&2
|
|
exit 0
|
|
fi
|
|
|
|
exec bd hooks run pre-push "$@"
|