]> oss.titaniummirror.com Git - repo_shell.git/commitdiff
Add the svncreate script
authorR. Steve McKown <rsmckown@gmail.com>
Mon, 24 Sep 2012 17:10:51 +0000 (11:10 -0600)
committerR. Steve McKown <rsmckown@gmail.com>
Mon, 24 Sep 2012 17:10:51 +0000 (11:10 -0600)
svncreate [new file with mode: 0755]

diff --git a/svncreate b/svncreate
new file mode 100755 (executable)
index 0000000..2d72197
--- /dev/null
+++ b/svncreate
@@ -0,0 +1,44 @@
+#!/bin/sh
+# svncreate is part of the repo_shell distribution.  Please see COPYING.
+
+svndir=/var/lib/svn
+repodir=$svndir/repositories
+owner=repo
+
+if [ "$(whoami)" != "$owner" ]; then
+    echo "$0: must run as user $owner" >&2
+    exit 1
+fi
+
+if [ $# -ne 1 ]; then
+    echo "usage: $0 <reponame>" >&2
+    exit 1
+fi
+
+if [ -e $repodir/$1 ]; then
+    echo "$0: repository $1 already exists" >&2
+    exit 1
+fi
+
+# Create the respository
+umask 027
+svnadmin create --fs-type fsfs $repodir/$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 $repodir/$1/conf/svnserve.conf $repodir/$1/conf/svnserve.conf.orig 
+ln -s ../../../svnserve.conf $repodir/$1/conf/svnserve.conf
+
+# Use default hook scripts
+mv $repodir/$1/hooks $repodir/$1/hooks.orig
+ln -s ../../hooks $repodir/$1/hooks
+if [ ! -d $svndir/hooks ]; then
+    echo "$0: WARNING: no hooks directory $svndir/hooks" >&2
+fi
+
+echo "Repository created.
+Be sure to edit $svndir/global-authz.conf to allow user access."
+exit 0