rdiff: fixed globbing bug for include, exclude and vsinclude (again.)
[matthijs/upstream/backupninja.git] / handlers / rdiff
index 9de8650e1a289414d659bddc9036b1b9a36ec7b5..1a2e1ebb37eaacfea7b5c88d4e0de3b74d6b0b0b 100644 (file)
@@ -1,3 +1,4 @@
+# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
 #
 # rdiff-backup handler script for backupninja
 # requires rdiff-backup
@@ -92,19 +93,14 @@ check_consistency "destination" "$type" "$user" "$host"
 ### CHECK CONFIG ###
 
 # See if vservers are configured
-if [ "$vservers" = "yes" ]
-then
-       if [ ! -d $VROOTDIR ]
-       then
-               fatal "vservers enabled, but $VROOTDIR does not exist!"
-       else
-               info "vserver method enabled"
-               usevserver=1
-       fi
+local usevserver=no
+if [ $vservers_are_available = yes -a -n "$vsinclude" ]; then
+   info "vserver method enabled"
+   usevserver=yes
 fi
 
 # check the connection at the source and destination
-if [ "$testconnect" == "yes" -o $test ]; then
+if [ "$testconnect" = "yes" ] || [ "${test}" -eq 1 ]; then
        test_connection $sourceuser $sourcehost
        test_connection $destuser $desthost
 fi
@@ -118,7 +114,7 @@ fi
 
 # source specific checks
 [ "$include" != "" -o "$vsinclude" != "" ] || fatal "No source includes specified"
-#TODO should I test for vsinclude if usevservers=1?
+#TODO should I test for vsinclude if usevservers=yes?
 case $sourcetype in 
        remote ) execstr_sourcepart="$sourceuser@$sourcehost::/" ;;
        local  ) execstr_sourcepart="/" ;;
@@ -164,21 +160,21 @@ execstr="$RDIFFBACKUP $options --print-statistics "
 
 # TODO: order the includes and excludes
 # excludes
-for i in $exclude; do
+for i in "$exclude"; do
        str="${i//__star__/*}"
        execstr="${execstr}--exclude '$str' "
 done
 # includes 
-for i in $include; do
+for i in "$include"; do
        [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'"
        str="${i//__star__/*}"
        execstr="${execstr}--include '$str' "
 done
 
 # vsinclude
-if [ $usevserver ]; then
+if [ $usevserver = yes ]; then
        for vserver in `ls $VROOTDIR|grep -v lost+found`; do
-               for vi in $vsinclude; do
+               for vi in "$vsinclude"; do
                        str="${vi//__star__/*}"
                        execstr="${execstr}--include '$VROOTDIR/$vserver$str' "
                done