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