]> oss.titaniummirror.com Git - repo_shell.git/blobdiff - scripts/svncreate
Add scripts/gitcreate, mv svncreate to scripts/
[repo_shell.git] / scripts / svncreate
diff --git a/scripts/svncreate b/scripts/svncreate
new file mode 100755 (executable)
index 0000000..a1f0ee2
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/sh
+# svncreate is part of the repo_shell distribution.
+
+source /etc/repo_shell.cfg
+if [ -z "$owner" -o -z "$svn_root" ]; then
+    echo "$0: please configure /etc/repo_shell.cfg"
+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 <reponame>" >&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
+    echo "$0: WARNING: no hooks directory $svndir/hooks" >&2v
+fi
+
+echo "Repository created.
+Be sure to edit $svndir/global-authz.conf to allow user access."
+exit 0