#!/bin/sh # svncreate is part of the repo_shell distribution. eval $([ -f /etc/repo_shell.conf ] && sed -e 's| ||g' < /etc/repo_shell.conf) if [ -z "$owner" -o -z "$svn_root" ]; then echo "$0: please configure /etc/repo_shell.conf" exit 1 fi svndir=$svn_root/.. if [ "$(whoami)" != "$owner" ]; then echo "$0: must run as user $owner" >&2 exit 1 fi if [ $# -ne 1 ]; then echo "usage: $0 " >&2 exit 1 fi if [ -e $svn_root/$1 ]; then echo "$0: repository $1 already exists" >&2 exit 1 fi # Create the respository umask 027 svnadmin create --fs-type fsfs $svn_root/$1 [ $? -ne 0 ] && exit 1 # Use global svnserve.conf if [ ! -e $svndir/svnserve.conf ]; then echo -e "[general]\nanon-access = none\nauth-access = write\nauthz-db = $svndir/global-authz.conf" > $svndir/svnserve.conf fi mv $svn_root/$1/conf/svnserve.conf $svn_root/$1/conf/svnserve.conf.orig ln -s ../../../svnserve.conf $svn_root/$1/conf/svnserve.conf # Use default hook scripts mv $svn_root/$1/hooks $svn_root/$1/hooks.orig ln -s ../../hooks $svn_root/$1/hooks if [ ! -d $svndir/hooks ]; then mkdir $svndir/hooks fi echo "Repository created. Be sure to edit $svndir/global-authz.conf to allow user access." exit 0