diff options
Diffstat (limited to 'scripts/install-git-hooks.sh')
-rwxr-xr-x | scripts/install-git-hooks.sh | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/scripts/install-git-hooks.sh b/scripts/install-git-hooks.sh new file mode 100755 index 000000000..1a4113f8d --- /dev/null +++ b/scripts/install-git-hooks.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +SCRIPTS_DIR=$(realpath $(dirname "$0")) +HOOK_DIR=$(realpath "$SCRIPTS_DIR/../.git/hooks") +HOOK_NAMES="applypatch-msg pre-applypatch post-applypatch pre-commit prepare-commit-msg commit-msg post-commit pre-rebase post-checkout post-merge pre-receive update post-receive post-update pre-auto-gc" + +for hook in $HOOK_NAMES; do + # If the hook already exists, is executable, and is not a symlink + if [ ! -h $HOOK_DIR/$hook -a -x $HOOK_DIR/$hook ]; then + mv $HOOK_DIR/$hook $HOOK_DIR/$hook.local + fi + # create the symlink, overwriting the file if it exists + # probably the only way this would happen is if you're using an old version of git + # -- back when the sample hooks were not executable, instead of being named ____.sample + ln -s -f ../../scripts/hooks-wrapper.sh $HOOK_DIR/$hook +done |