diff options
author | intrigeri <intrigeri@boum.org> | 2006-06-04 00:30:03 +0000 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2006-06-04 00:30:03 +0000 |
commit | a65bc7af30e0ba963a007bc47b6287054bc2f276 (patch) | |
tree | 09010b55fae90a77a2bb0f6443de43f149e3adc3 /handlers/rdiff | |
parent | b538ddaa1e0a301831270c177472abd85c011b0f (diff) | |
download | backupninja-a65bc7af30e0ba963a007bc47b6287054bc2f276.tar.gz backupninja-a65bc7af30e0ba963a007bc47b6287054bc2f276.tar.bz2 |
rdiff and dup handlers/helpers/examples symlink and globbing support enhancement
and clarification: for a given include/exclude/vsinclude statement, they now
support EITHER globbing with '*' OR symlinks in the path.
Diffstat (limited to 'handlers/rdiff')
-rw-r--r-- | handlers/rdiff | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/handlers/rdiff b/handlers/rdiff index a80b2c5..8f0edfb 100644 --- a/handlers/rdiff +++ b/handlers/rdiff @@ -112,6 +112,7 @@ else fi # check the connection at the source and destination +[ -n "$test" ] || test=0 if [ "$testconnect" = "yes" ] || [ "${test}" -eq 1 ]; then test_connection $sourceuser $sourcehost test_connection $destuser $desthost @@ -171,28 +172,42 @@ execstr="$RDIFFBACKUP $options --print-statistics " set -o noglob +symlinks_warning="Maybe you have mixed symlinks and '*' in this statement, which is not supported." + # TODO: order the includes and excludes # excludes for i in $exclude; do - str="${i//__star__/*}" - i=`readlink -f ${i#}` - execstr="${execstr}--exclude '$str' " + str="${i//__star__/*}" + str=`readlink -f $str` + if [ -n "$str" ]; then + execstr="${execstr}--exclude '$str' " + else + warning "exclude statement ${i//__star__/*} will be ignored. $symlinks_warning" + fi done # includes for i in $include; do - [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'" - str="${i//__star__/*}" - i=`readlink -f $i` - execstr="${execstr}--include '$str' " + [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'" + str="${i//__star__/*}" + str=`readlink -f $str` + if [ -n "$str" ]; then + execstr="${execstr}--include '$str' " + else + warning "include statement ${i//__star__/*} will be ignored. $symlinks_warning" + fi done # vsinclude if [ $usevserver = yes ]; then for vserver in $vsnames; do for vi in $vsinclude; do - i=`readlink -f $VROOTDIR/$vserver$vi` - str="${i//__star__/*}" - execstr="${execstr}--include '$str' " + str="${vi//__star__/*}" + str=`readlink -f $VROOTDIR/$vserver$str` + if [ -n "$str" ]; then + execstr="${execstr}--include '$str' " + else + warning "vsinclude statement ${vi//__star__/*} will be ignored for VServer $vserver. $symlinks_warning" + fi done done fi |