#!/bin/sh -eu set -eu DIR="/data/git" REPOS="$DIR/*.git" HOOKS="pre-receive" dir=`dirname $0` BASE=`realpath $dir` echo "# This file is auto-generated" > $DIR/cgit-repo-rc for git in $REPOS; do if [ -d "$git" ]; then cd $git name=`basename $git` simple=${name%.git} echo $name # Prepare the repository chown -R www:www . ln -sf $git $DIR/$simple find . -type f -print0 | xargs -0 chmod 660 find . -type d -print0 | xargs -0 chmod 770 # Install hooks for hook in $HOOKS; do ln -sf $BASE/$hook hooks/$hook done # Repository settings git config core.sharedRepository=0660 || true git config receive.denyNonFastforwards=true || true touch git-daemon-export-ok # Add to cgit list ( if [ -f cgit-repo-rc ]; then include=$git/cgit-repo-rc else echo "repo.url=$simple" echo "repo.path=$git" echo "repo.desc=$simple" fi echo ) >> $DIR/cgit-repo-rc fi done