aboutsummaryrefslogtreecommitdiff
path: root/handlers/dup
diff options
context:
space:
mode:
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"