#!/bin/bash
# A small utility to symlink the files from git-hooks/ with filenames ending
# like .in into the directory .git/hooks/
#
# It's intended this be run once near the start of a project by hand, and then
# subsequently a hook that it installs keeps it running at project checkouts.


# Save current directory so we can come back; change to repo root
STARTED_FROM=`pwd`
cd $(git rev-parse --show-toplevel)

# Sync git-hooks directory entries into .git/hooks/
for file in git-hooks/*.in; do
    filepart=`basename $file .in`
    if [ -e .git/hooks/$filepart -a ! -L .git/hooks/$filepart ]; then
        echo ".git/hooks/$filepart not link-managed; bailing..."
        echo "please examine your .git/hooks/ directory and repair inconsistencies manually"
        cd $STARTED_FROM
        exit 1
    else
        ln -v -s -f `pwd`/$file .git/hooks/$filepart
    fi
done

# Ok, everything went well; restore previous context
cd $STARTED_FROM
exit 0