(no commit message)
[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 $tmp dir, not $tmp/$repo
18     ret=`mkdir -p $tmp 2>&1`
19     code=$?
20     if [ "$ret" ]; then
21        debug "$ret"
22     fi
23     if [ $code != 0 ]; then
24        error "command failed mkdir -p $tmp"
25     fi
26
27     ret=`trac-admin $src/$repo hotcopy $tmp/$repo 2>&1`
28     code=$?
29     if [ "$ret" ]; then
30        debug "$ret"
31     fi
32     if [ $code != 0 ]; then
33        error "command failed -- trac-admin $src/$repo hotcopy $tmp/$repo"
34        error=1
35     fi
36 done
37
38 if [ $error -eq 1 ]; then
39     echo "Error: because of earlier errors, we are leaving trac backups in $tmp instead of $dest"
40 else
41     if [ -d $dest -a -d $tmp ]; then
42         rm -rf $dest
43     fi
44     if [ -d $tmp ]; then
45         mv $tmp $dest
46     fi
47 fi
48
49 exit 0
50
51 # vim: filetype=sh