1c1b46463df33d5801d5c9202fd251ec73050cf8
[matthijs/upstream/backupninja.git] / handlers / trac
1 #
2 # this handler will backup trac environments (based on the svn handler)
3 #
4 # http://trac.edgewall.com/
5 #
6
7 getconf src /var/lib/trac
8 getconf dest /var/backups/trac
9 getconf tmp /var/backups/trac.tmp
10
11 error=0
12 cd $src
13 for repo in `find . -name VERSION`
14 do
15     repo=`dirname $repo`
16
17     # Just make the parent directory for $tmp/$repo
18     parentdir=`dirname $tmp/$repo`
19     ret=`mkdir -p $parentdir 2>&1`
20     code=$?
21     if [ "$ret" ]; then
22        debug "$ret"
23     fi
24     if [ $code != 0 ]; then
25        error "command failed mkdir -p $parentdir"
26     fi
27
28     ret=`trac-admin $src/$repo hotcopy $tmp/$repo 2>&1`
29     code=$?
30     if [ "$ret" ]; then
31        debug "$ret"
32     fi
33     if [ $code != 0 ]; then
34        error "command failed -- trac-admin $src/$repo hotcopy $tmp/$repo"
35        error=1
36     fi
37 done
38
39 if [ $error -eq 1 ]; then
40     echo "Error: because of earlier errors, we are leaving trac backups in $tmp instead of $dest"
41 else
42     if [ -d $dest -a -d $tmp ]; then
43         rm -rf $dest
44     fi
45     if [ -d $tmp ]; then
46         mv $tmp $dest
47     fi
48 fi
49
50 exit 0
51
52 # vim: filetype=sh