dup: use duplicity's --extra-clean option when necessary
[matthijs/upstream/backupninja.git] / handlers / trac.in
1 # -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
2 # vim: set filetype=sh sw=3 sts=3 expandtab autoindent:
3 #
4 # this handler will backup trac environments (based on the svn handler)
5 #
6 # http://trac.edgewall.com/
7 #
8
9 getconf src /var/lib/trac
10 getconf dest /var/backups/trac
11 getconf tmp /var/backups/trac.tmp
12
13 cd $src
14 for repo in `find . -name VERSION`
15 do
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