From 7a5045baf1ee3f76a5e08ae86d86e67ed5a398d2 Mon Sep 17 00:00:00 2001
From: intrigeri <intrigeri@boum.org>
Date: Tue, 23 Jul 2013 12:01:37 +0200
Subject: [PATCH] dup: Gracefully handle legacy spaces between -o and
 IdentityFile.

---
 handlers/dup.in | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/handlers/dup.in b/handlers/dup.in
index 36db959..a67848f 100644
--- a/handlers/dup.in
+++ b/handlers/dup.in
@@ -125,8 +125,16 @@ duplicity_sub="`echo $duplicity_version | @AWK@ -F '.' '{print $3}'`"
 ## duplicity >= 0.6.17 : paramiko backend
 if [ "$duplicity_major" -ge 0 -a "$duplicity_minor" -ge 6 -a "$duplicity_sub" -ge 17 ]; then
    if [ -n "$sshoptions" ]; then
-      echo "$sshoptions" | grep -Eqs '^-o[[:space:]]*IdentityFile=[^ ]+$' \
-         || warning 'duplicity >= 0.6.17 only supports the IdentityFile SSH option'
+      if echo "$sshoptions" | grep -Eqs '^-o[[:space:]]*IdentityFile=[^ ]+$' ; then
+         spaceless_sshoptions="$(echo -n "$sshoptions" | @SED@ 's/^-o[[:space:]]*/-o/')"
+         if [ "$spaceless_sshoptions" != "$sshoptions" ] ; then
+            warning 'Since duplicity >= 0.6.17, sshoptions option requires no space between -o and IdentityFile.'
+            warning 'The bad space has been ignored. Update your duplicity handler config file to suppress this message.'
+            sshoptions="$spaceless_sshoptions"
+         fi
+      else
+         warning 'duplicity >= 0.6.17 only supports the IdentityFile SSH option'
+      fi
    fi
    execstr_options="${execstr_options} --ssh-options '$sshoptions'"
    if [ "$bandwidthlimit" != 0 ]; then
-- 
GitLab