#! /usr/bin/env bash # Create remote git repository (on the server). You must run this script # from the directory where you want the repository to be created. # # Usage: mkrepo.sh [] # # --private make the repository private # # Note: if without the .git suffix. # trap 'exit 1' ERR function error () { echo "$*" 1>&2 } public=y while [ $# -gt 0 ]; do case $1 in --private) public=n shift ;; -*) error "unknown option: $1" exit 1 ;; *) break ;; esac done if [ "$1" = "" ]; then error "repository name expected" exit 1 fi r=$1.git mkdir $r chgrp scm $r git --bare init --shared=all $r error "Enter project description (one line; or edit $r/descrition later)" error "Hit Ctrl-D when done" cat >$r/description chgrp -R scm $r if [ "$public" = "y" ]; then f=$r/git-daemon-export-ok touch $f chgrp scm $f chmod g+w $f else # Disable raw HTTP access to this directory. # echo "deny from all" >$r/.htaccess fi mv $r/hooks/post-update.sample $r/hooks/post-update