git: Make git-wrapper create symlinks instead of copying them.
authorMatthijs Kooijman <matthijs@stdin.nl>
Sun, 30 Jan 2011 20:19:31 +0000 (21:19 +0100)
committerMatthijs Kooijman <matthijs@stdin.nl>
Sun, 30 Jan 2011 20:21:27 +0000 (21:21 +0100)
This makes it possible to have a single hook script that calls multiple
different ones, instead of being just a symlink to a single script.

usr/local/bin/git-wrapper

index 570a47d2d737a82fcfda6365bd311a205b9ad2b5..5481ffbf42f89e29303a64954e3429b0e1efab0f 100755 (executable)
@@ -9,12 +9,15 @@
 # --base-path-relaxed. 
 
 BASE_PATH='/data/vcs/git'
-POST_UPDATE_HOOK="$BASE_PATH/hooks/post-update"
+HOOKS_PATH="$BASE_PATH/hooks"
+HOOKS=post-update
 
 function init_repos() {
        mkdir "$1" &> /dev/null  || return 1 
        (cd $1 && git --bare init &> /dev/null) || return 1
-       cp -P "$POST_UPDATE_HOOK" "$1/hooks/" || return 1
+       for hook in $HOOKS; do
+           ln -s "$HOOKS_PATH/$hook" "$1/hooks/" || return 1
+       done
 }
 
 # We keep an array of arguments, so we can handle quoting an spaces in