Files
claude-playground/scripts/install-hooks.sh
T

17 lines
732 B
Bash
Raw Normal View History

#!/bin/sh
# Copy the hooks in .githooks/ into git's own hooks directory. They are copied rather than
# enabled with core.hooksPath on purpose: Claude Code's sandbox can't write inside .git/, so
# a sandboxed command can't rewrite the installed hooks, even though git commit and git push
# (and so their hooks) run outside the sandbox. Re-run after changing anything in .githooks/.
set -e
cd "$(dirname "$0")/.."
if ! hooks=$(git rev-parse --git-path hooks 2>/dev/null); then
echo "install-hooks: not a git checkout; skipping." >&2
exit 0
fi
mkdir -p "$hooks"
for hook in .githooks/*; do
cp "$hook" "$hooks/"
chmod +x "$hooks/$(basename "$hook")"
done
echo "install-hooks: installed $(ls .githooks | tr '\n' ' ')into $hooks"