X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FXfer%2FRsync.pm;h=934ce486aaa71cecdc41ac90e0b01a4865c3ca69;hp=0c1c336c2d6d832270f5079358abe9597a5a0e1a;hb=1015740e2b58fc43d7cf49881f190a9612e73fff;hpb=2441b9094f3f6e4f2a3a4fe67781780e6f6890bd diff --git a/lib/BackupPC/Xfer/Rsync.pm b/lib/BackupPC/Xfer/Rsync.pm index 0c1c336..934ce48 100644 --- a/lib/BackupPC/Xfer/Rsync.pm +++ b/lib/BackupPC/Xfer/Rsync.pm @@ -92,6 +92,17 @@ sub start if ( $t->{type} eq "restore" ) { $rsyncClientCmd = $conf->{RsyncClientRestoreCmd}; $rsyncArgs = $conf->{RsyncRestoreArgs}; + + # + # Merge variables into $rsyncArgs + # + $rsyncArgs = $bpc->cmdVarSubstitute($rsyncArgs, { + host => $t->{host}, + hostIP => $t->{hostIP}, + client => $t->{client}, + confDir => $conf->{ConfDir}, + }); + my $remoteDir = "$t->{shareName}/$t->{pathHdrDest}"; $remoteDir =~ s{//+}{/}g; from_to($remoteDir, "utf8", $conf->{ClientCharset}) @@ -209,6 +220,23 @@ sub start # transferred, even though it is a full dump. # $rsyncArgs = $conf->{RsyncArgs}; + + # + # Add any additional rsync args + # + $rsyncArgs = [@$rsyncArgs, @{$conf->{RsyncArgsExtra}}] + if ( ref($conf->{RsyncArgsExtra}) eq 'ARRAY' ); + + # + # Merge variables into $rsyncArgs + # + $rsyncArgs = $bpc->cmdVarSubstitute($rsyncArgs, { + host => $t->{host}, + hostIP => $t->{hostIP}, + client => $t->{client}, + confDir => $conf->{ConfDir}, + }); + $rsyncArgs = [@$rsyncArgs, @fileList] if ( @fileList ); $rsyncArgs = [@$rsyncArgs, "--ignore-times"] if ( $t->{type} eq "full" ); @@ -392,13 +420,13 @@ sub run if ( $conf->{ClientCharset} ne "" ); } - my $str = "RsyncArgsBefore: " . join(" ", @{$rs->{rsyncArgs}}) . "\n"; - $t->{XferLOG}->write(\$str); + ##my $str = "RsyncArgsBefore: " . join(" ", @{$rs->{rsyncArgs}}) . "\n"; + ##$t->{XferLOG}->write(\$str); $rs->serverStart($remoteSend, $remoteDirDaemon); - my $str = "RsyncArgsAfter: " . join(" ", @{$rs->{rsyncArgs}}) . "\n"; - $t->{XferLOG}->write(\$str); + ##$str = "RsyncArgsAfter: " . join(" ", @{$rs->{rsyncArgs}}) . "\n"; + ##$t->{XferLOG}->write(\$str); } my $shareNameSlash = $t->{shareNameSlash}; from_to($shareNameSlash, "utf8", $conf->{ClientCharset})