X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FXfer.pm;h=af20a75274560c3915cfe7b91aded2049306f632;hp=2977015dd23a5159551aa916edb2ddf7077735bc;hb=1015740e2b58fc43d7cf49881f190a9612e73fff;hpb=2441b9094f3f6e4f2a3a4fe67781780e6f6890bd diff --git a/lib/BackupPC/Xfer.pm b/lib/BackupPC/Xfer.pm index 2977015..af20a75 100644 --- a/lib/BackupPC/Xfer.pm +++ b/lib/BackupPC/Xfer.pm @@ -134,6 +134,67 @@ sub getShareNames return $ShareNames; } + +sub getRestoreCmd +{ + my($conf) = @_; + my $restoreCmd; + + if ( $conf->{XferMethod} eq "archive" ) { + $restoreCmd = undef; + + } elsif ( $conf->{XferMethod} eq "ftp" ) { + $restoreCmd = undef; + + } elsif ( $conf->{XferMethod} eq "rsync" + || $conf->{XferMethod} eq "rsyncd" ) { + $restoreCmd = $conf->{RsyncRestoreArgs}; + + } elsif ( $conf->{XferMethod} eq "tar" ) { + $restoreCmd = $conf->{TarClientRestoreCmd}; + + } elsif ( $conf->{XferMethod} eq "smb" ) { + $restoreCmd = $conf->{SmbClientRestoreCmd}; + + } else { + + # + # protocol unrecognized + # + $restoreCmd = undef; + } + return $restoreCmd; +} + + +sub restoreEnabled +{ + my($conf) = @_; + my $restoreCmd; + + if ( $conf->{XferMethod} eq "archive" ) { + return; + + } elsif ( $conf->{XferMethod} eq "ftp" ) { + return !!( $conf->{FtpRestoreEnabled} ); + + } elsif ( $conf->{XferMethod} eq "rsync" + || $conf->{XferMethod} eq "rsyncd" + || $conf->{XferMethod} eq "tar" + || $conf->{XferMethod} eq "smb" ) { + $restoreCmd = getRestoreCmd( $conf ); + return !!( + ref $restoreCmd eq "ARRAY" + ? @$restoreCmd + : $restoreCmd ne "" + ); + + } else { + return; + } +} + + sub errStr { return $errStr;