aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--handlers/rsync.in12
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index e1ac76d..fa319b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@ version 1.0 -- UNRELEASED
handler changes
rysnc:
. Fix numericids option (Redmine#3691).
+ . Mangle $rsync_options just afterwards (Redmine#3702).
dup:
. Make the .dup generated by ninjahelper more consistent with
example.dup.
diff --git a/handlers/rsync.in b/handlers/rsync.in
index 45b9b31..a17afbd 100644
--- a/handlers/rsync.in
+++ b/handlers/rsync.in
@@ -893,7 +893,7 @@ function set_rsync_options {
if [ "$from" == "local" ] || [ "$dest" == "local" ]; then
# rsync options for local sources or destinations
- rsync_options=($rsync_options)
+ true
fi
if [ "$from" == "remote" ] || [ "$dest" == "remote" ]; then
@@ -912,8 +912,6 @@ function set_rsync_options {
remote_rsync="$remote_rsync --fake-super"
fi
- rsync_options=($rsync_options --rsync-path="$remote_rsync")
-
if [ "$protocol" == "ssh" ]; then
if [ ! -e "$id_file" ]; then
fatal "SSH Identity file $id_file not found"
@@ -927,6 +925,14 @@ function set_rsync_options {
fi
+ # Mangle rsync_options so we can use quotes after all other
+ # options were evaluated.
+ if [ "$from" == "local" ] && [ "$dest" == "local" ]; then
+ rsync_options=($rsync_options)
+ else
+ rsync_options=($rsync_options --rsync-path="$remote_rsync")
+ fi
+
include_vservers
}