git: Make git-wrapper create symlinks instead of copying them.
[matthijs/servers/drsnuggles.git] / usr / local / bin / git-wrapper
index 43da4e1d77b1086a0472bb8950f26f7d6496874f..5481ffbf42f89e29303a64954e3429b0e1efab0f 100755 (executable)
@@ -9,6 +9,16 @@
 # --base-path-relaxed. 
 
 BASE_PATH='/data/vcs/git'
+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
+       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
 # arguments properly.
@@ -30,7 +40,7 @@ do
                # When the client wants us to receive a pack, create the git
                # repository if it does not exist yet   
                if [ "`basename $0`" = "git-receive-pack" -a ! -e "$DIR" ]; then
-                       mkdir "$DIR" &> /dev/null && (cd $DIR && git --bare init &> /dev/null)
+                       init_repos "$DIR" || exit 1
                fi
                ARGS[$i]="$DIR"
        else