fixed autotools build, broken since r466, inhandlers/Makefile.am
[matthijs/upstream/backupninja.git] / handlers / trac.in
diff --git a/handlers/trac.in b/handlers/trac.in
new file mode 100644 (file)
index 0000000..0460c9f
--- /dev/null
@@ -0,0 +1,58 @@
+# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
+#
+# this handler will backup trac environments (based on the svn handler)
+#
+# http://trac.edgewall.com/
+#
+
+getconf src /var/lib/trac
+getconf dest /var/backups/trac
+getconf tmp /var/backups/trac.tmp
+
+error=0
+cd $src
+for repo in `find . -name VERSION`
+do
+
+    repo=`dirname $repo`
+    if [ "$repo" == "." ]
+    then 
+       repo="" 
+    fi
+
+    # Just make the parent directory for $tmp/$repo
+    parentdir=`dirname $tmp/$repo`
+    ret=`mkdir -p $parentdir 2>&1`
+    code=$?
+    if [ "$ret" ]; then
+       debug "$ret"
+    fi
+    if [ $code != 0 ]; then
+       error "command failed mkdir -p $parentdir"
+    fi
+
+    ret=`trac-admin $src/$repo hotcopy $tmp/$repo 2>&1`
+    code=$?
+    if [ "$ret" ]; then
+       debug "$ret"
+    fi
+    if [ $code != 0 ]; then
+       error "command failed -- trac-admin $src/$repo hotcopy $tmp/$repo"
+       error=1
+    fi
+done
+
+if [ $error -eq 1 ]; then
+    echo "Error: because of earlier errors, we are leaving trac backups in $tmp instead of $dest"
+else
+    if [ -d $dest -a -d $tmp ]; then
+        rm -rf $dest
+    fi
+    if [ -d $tmp ]; then
+        mv $tmp $dest
+    fi
+fi
+
+exit 0
+
+# vim: filetype=sh