aboutsummaryrefslogtreecommitdiff
path: root/handlers/dup
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2006-06-04 00:30:03 +0000
committerintrigeri <intrigeri@boum.org>2006-06-04 00:30:03 +0000
commita65bc7af30e0ba963a007bc47b6287054bc2f276 (patch)
tree09010b55fae90a77a2bb0f6443de43f149e3adc3 /handlers/dup
parentb538ddaa1e0a301831270c177472abd85c011b0f (diff)
downloadbackupninja-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/dup')
-rw-r--r--handlers/dup46
1 files changed, 27 insertions, 19 deletions
diff --git a/handlers/dup b/handlers/dup
index 59bb9bf..c16ec40 100644
--- a/handlers/dup
+++ b/handlers/dup
@@ -129,41 +129,49 @@ execstr_clientpart="/"
set -o noglob
+symlinks_warning="Maybe you have mixed symlinks and '*' in this statement, which is not supported."
+
# 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
- str="${i//__star__/*}"
- i=`readlink -f ${i#}`
- execstr="${execstr}--include '$str' "
+ 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
# vsincludes
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 '$VROOTDIR/$vserver$str' "
- done
- done
+ for vserver in $vsnames; do
+ for vi in $vsinclude; do
+ 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
set +o noglob
### EXECUTE ###
-# exclude everything else, start with root
-#execstr="${execstr}--exclude '**' / "
-
-# include client-part and server-part
-#execstr="$execstr $execstr_serverpart"
-
execstr=${execstr//\\*/\\\\\\*}
debug "duplicity $execstr --exclude '**' / $execstr_serverpart"