dup: support every duplicity-supported transport with new configuration option destur...
authorintrigeri <intrigeri@758a04ac-41e6-0310-8a23-8373a73cc35d>
Tue, 24 Jun 2008 13:32:34 +0000 (13:32 +0000)
committerintrigeri <intrigeri@758a04ac-41e6-0310-8a23-8373a73cc35d>
Tue, 24 Jun 2008 13:32:34 +0000 (13:32 +0000)
git-svn-id: http://code.autistici.org/svn/backupninja/trunk@568 758a04ac-41e6-0310-8a23-8373a73cc35d

ChangeLog
examples/example.dup
handlers/dup.helper.in
handlers/dup.in

index fd3cc4842c4d0fcd9c166d0faaf23cb2ea859870..2134c3c7da1b56f06756566a2822ff4d16803047 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,8 @@ version 0.9.6 -- unreleased
           only trigger a warning on failure, since they should not stop backups
           from being done. Also migrated full/incremental backup switch to the
           new syntax.
+        . Support every duplicity-supported transport with new configuration
+          option desturl (Closes: #483712, #346040, Trac#2).
        ldap:
         . support HDB backend just as the BDB one, and make message clearer
           when no supported backend is found (Closes: #476910)
index d490f745f3777458e72f5af8e2b74ecb27b12823..91ff07e4b6a8f9bb43255bb0ab138346fbbf2dd8 100644 (file)
@@ -120,6 +120,12 @@ exclude = /home/*/.gnupg
 #keep = 60
 #keep = yes
 
+# full destination URL, in duplicity format; if set, desturl overrides
+# sshoptions, destdir, desthost and destuser, and disables testconnect
+# For details, see duplicity manpage, section "URL FORMAT".
+#desturl = file:///usr/local/backup
+#desturl = rsync://user@other.host//var/backup/bla
+
 # bandwith limit, in kbit/s ; default is 0, i.e. no limit
 #bandwidthlimit = 128
 
index eee025666b562a9fa10b6242a097e8b25be78e39..96828ef739c14821b7f1612a9119d23fbe22a8d7 100644 (file)
@@ -397,6 +397,12 @@ incremental = $dup_incremental
 #keep = yes
 keep = $dup_keep
 
+# full destination URL, in duplicity format; if set, desturl overrides
+# sshoptions, destdir, desthost and destuser, and disables testconnect
+# For details, see duplicity manpage, section "URL FORMAT".
+#desturl = file:///usr/local/backup
+#desturl = rsync://user@other.host//var/backup/bla
+
 # bandwith limit, in kbit/s ; default is 0, i.e. no limit
 #bandwidthlimit = 128
 bandwidthlimit = $dup_bandwidth
index 00f4b58b7a8a7147127a85db87717c04843fb741..cae99097e814b764cacdb20d3ebfa6acb5fa2f46 100644 (file)
@@ -24,6 +24,7 @@ getconf exclude
 setsection dest
 getconf incremental yes
 getconf keep 60
+getconf desturl
 getconf sshoptions
 getconf bandwidthlimit 0
 getconf desthost
@@ -33,7 +34,7 @@ destdir=${destdir%/}
 
 ### SANITY CHECKS ##############################################################
 
-[ -n "$destdir" ]  || fatal "Destination directory not set"
+[ -n "$desturl" -o -n "$destdir" ]  || fatal "The destination directory (destdir) must be set when desturl is not used."
 [ -n "$include" ]  || fatal "No source includes specified"
 [ -n "$password" ] || fatal "The password option must be set."
 
@@ -58,13 +59,17 @@ fi
 
 ### See if we can login on $desthost
 if [ "$testconnect" == "yes" ]; then
-   debug "ssh $sshoptions -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1'"
-   if [ ! $test ]; then
-      result=`ssh $sshoptions -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1'`
-      if [ "$result" != "1" ]; then
-        fatal "Can't connect to $desthost as $destuser."
-      else
-        debug "Connected to $desthost as $destuser successfully"
+   if [ -n "$desturl" ]; then
+      warning 'testconnect can not be used when desturl is set'
+   else
+      debug "ssh $sshoptions -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1'"
+      if [ ! $test ]; then
+         result=`ssh $sshoptions -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1'`
+         if [ "$result" != "1" ]; then
+           fatal "Can't connect to $desthost as $destuser."
+         else
+           debug "Connected to $desthost as $destuser successfully"
+         fi
       fi
    fi
 fi
@@ -75,7 +80,14 @@ fi
 execstr_command=
 execstr_options="$options --no-print-statistics"
 execstr_source=
-execstr_serverpart="scp://$destuser@$desthost/$destdir"
+if [ -n "$desturl" ]; then
+   [ -z "$destuser" ] || warning 'the configured destuser is ignored since desturl is set'
+   [ -z "$desthost" ] || warning 'the configured desthost is ignored since desturl is set'
+   [ -z "$destdir" ] || warning 'the configured destdir is ignored since desturl is set'
+   execstr_serverpart="$desturl"
+else
+   execstr_serverpart="scp://$destuser@$desthost/$destdir"
+fi
 
 ### duplicity version
 duplicity_version="`duplicity --version | @AWK@ '{print $2}'`"