diff options
Diffstat (limited to 'handlers/svn')
-rw-r--r-- | handlers/svn | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/handlers/svn b/handlers/svn deleted file mode 100644 index 377d71c..0000000 --- a/handlers/svn +++ /dev/null @@ -1,80 +0,0 @@ -# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*- -# -# this handler will backup subversion repostitories. -# - -getconf src /var/lib/svn -getconf dest /var/backups/svn -getconf tmp /var/backups/svn.tmp -getconf HOTBACKUP "/usr/bin/svnadmin hotcopy" -getconf vsname - -error=0 - -# Decide if the handler should operate on a vserver or on the host. -# In the former case, check that $vsname exists and is running. -local usevserver=no -local vroot -if [ $vservers_are_available = yes ]; then - if [ -n "$vsname" ]; then - # does it exist ? - if ! vservers_exist "$vsname" ; then - fatal "The vserver given in vsname ($vsname) does not exist." - fi - # is it running ? - $VSERVERINFO -q $vsname RUNNING - if [ $? -ne 0 ]; then - fatal "The vserver $vsname is not running." - fi - # everything ok - info "Using vserver '$vsname'." - usevserver=yes - vroot="$VROOTDIR/$vsname" - else - info "No vserver name specified, actions will be performed on the host." - fi -fi - -cd $vroot$src -for repo in `find . -name svnserve.conf` -do - repo=`dirname $repo` - repo=`dirname $repo` - - ret=`mkdir -p $vroot$tmp/$repo 2>&1` - code=$? - if [ "$ret" ]; then - debug "$ret" - fi - if [ $code != 0 ]; then - error "command failed mkdir -p $vroot$tmp/$repo" - fi - - if [ $usevserver = yes ] - then - ret=`$VSERVER $vsname exec $HOTBACKUP $src/$repo $tmp/$repo 2>&1` - else - ret=`$HOTBACKUP $src/$repo $tmp/$repo 2>&1` - fi - code=$? - if [ "$ret" ]; then - debug "$ret" - fi - if [ $code != 0 ]; then - error "command failed -- $HOTBACKUP $vroot$src/$repo $vroot$tmp/$repo" - error=1 - fi -done - -if [ $error -eq 1 ]; then - echo "Error: because of earlier errors, we are leaving svn backups in $vroot$tmp instead of $vroot$dest" -else - if [ -d $vroot$dest -a -d $vroot$tmp ]; then - rm -rf $vroot$dest - fi - if [ -d $vroot$tmp ]; then - mv $vroot$tmp $vroot$dest - fi -fi - -exit 0 |