1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#!/usr/bin/env bash
# Run this script to set up the git hooks for committing changes
# For more information, see:
# http://public.kitware.com/Wiki/Git/Hooks
die() {
echo 'Failure during hook setup.' 1>&2
echo '--------------------------' 1>&2
echo '' 1>&2
echo "$@" 1>&2
exit 1
}
# Centralize project variables for each script
project="VTK"
projectUrl="vtk.org"
u=$(cd "$(echo "$0"|sed 's/[^/]*$//')"; pwd)
cd "$u/../../.git/hooks"
# We need to have a git repository to do a pull.
if ! test -d ./.git; then
git init || die "Could not run git init."
fi
# Grab the hooks.
# Use the local hooks if possible.
echo "Pulling the hooks..."
if GIT_DIR=.. git for-each-ref refs/remotes/origin/hooks 2>/dev/null | \
grep -q '\<refs/remotes/origin/hooks$'; then
git pull .. remotes/origin/hooks
else
git pull http://${projectUrl}/${project}.git hooks || die "Downloading the hooks failed."
fi
cd ../..
echo "Done."
|