Skip to content
Snippets Groups Projects
Commit 4e0519e3 authored by intrigeri's avatar intrigeri
Browse files

rdiff,dup: fix include/exclude paths with spaces (Closes: #398435)

This also fixes Redmine bug #1021.
parent 47313bca
Branches
Tags
No related merge requests found
...@@ -42,6 +42,8 @@ version 0.9.7 -- UNRELEASED ...@@ -42,6 +42,8 @@ version 0.9.7 -- UNRELEASED
database names. database names.
. Use bash pipefail option when needed so that failed dumps are . Use bash pipefail option when needed so that failed dumps are
reported as such. reported as such.
rdiff:
. Fix include/exclude paths with spaces (Closes: #398435)
sys: sys:
. New luksheaders option (default=disabled) to backup the Luks header . New luksheaders option (default=disabled) to backup the Luks header
of every Luks device. of every Luks device.
...@@ -55,6 +57,7 @@ version 0.9.7 -- UNRELEASED ...@@ -55,6 +57,7 @@ version 0.9.7 -- UNRELEASED
one time (Closes: #536360) one time (Closes: #536360)
. Report duplicity output as "info" so that it can be included in . Report duplicity output as "info" so that it can be included in
report e-mail when reportinfo is on (Closes: #563734) report e-mail when reportinfo is on (Closes: #563734)
. Fix include/exclude paths with spaces
helper changes helper changes
dup: dup:
. Do not propose to exclude /home/*/.gnupg twice anymore . Do not propose to exclude /home/*/.gnupg twice anymore
......
...@@ -189,26 +189,35 @@ fi ...@@ -189,26 +189,35 @@ fi
set -o noglob set -o noglob
# excludes # excludes
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in $exclude; do for i in $exclude; do
str="${i//__star__/*}" str="${i//__star__/*}"
execstr_source="${execstr_source} --exclude '$str'" execstr_source="${execstr_source} --exclude '$str'"
done done
IFS=$SAVEIFS
# includes # includes
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in $include; do for i in $include; do
[ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'" [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'"
str="${i//__star__/*}" str="${i//__star__/*}"
execstr_source="${execstr_source} --include '$str'" execstr_source="${execstr_source} --include '$str'"
done done
IFS=$SAVEIFS
# vsincludes # vsincludes
if [ $usevserver = yes ]; then if [ $usevserver = yes ]; then
for vserver in $vsnames; do for vserver in $vsnames; do
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for vi in $vsinclude; do for vi in $vsinclude; do
str="${vi//__star__/*}" str="${vi//__star__/*}"
str="$VROOTDIR/$vserver$str" str="$VROOTDIR/$vserver$str"
execstr_source="${execstr_source} --include '$str'" execstr_source="${execstr_source} --include '$str'"
done done
IFS=$SAVEIFS
done done
fi fi
......
...@@ -209,20 +209,28 @@ symlinks_warning="Maybe you have mixed symlinks and '*' in this statement, which ...@@ -209,20 +209,28 @@ symlinks_warning="Maybe you have mixed symlinks and '*' in this statement, which
# TODO: order the includes and excludes # TODO: order the includes and excludes
# excludes # excludes
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in $exclude; do for i in $exclude; do
str="${i//__star__/*}" str="${i//__star__/*}"
execstr="${execstr}--exclude '$str' " execstr="${execstr}--exclude '$str' "
done done
IFS=$SAVEIFS
# includes # includes
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in $include; do for i in $include; do
[ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'" [ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'"
str="${i//__star__/*}" str="${i//__star__/*}"
execstr="${execstr}--include '$str' " execstr="${execstr}--include '$str' "
done done
IFS=$SAVEIFS
# vsinclude # vsinclude
if [ $usevserver = yes ]; then if [ $usevserver = yes ]; then
for vserver in $vsnames; do for vserver in $vsnames; do
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for vi in $vsinclude; do for vi in $vsinclude; do
str="${vi//__star__/*}" str="${vi//__star__/*}"
str="$VROOTDIR/$vserver$str" str="$VROOTDIR/$vserver$str"
...@@ -232,6 +240,7 @@ if [ $usevserver = yes ]; then ...@@ -232,6 +240,7 @@ if [ $usevserver = yes ]; then
warning "vsinclude statement '${vi//__star__/*}' will be ignored for VServer $vserver. $symlinks_warning" warning "vsinclude statement '${vi//__star__/*}' will be ignored for VServer $vserver. $symlinks_warning"
fi fi
done done
IFS=$SAVEIFS
done done
fi fi
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment