X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FXfer.pm;h=af20a75274560c3915cfe7b91aded2049306f632;hp=b585e25cad6a523326d27cd0d692cc1add3864e8;hb=fb14ecbce30175cec1dc6942dbb281ea8efac345;hpb=5b79f9a3c01bca16dd4d211e76fc53daa549e421 diff --git a/lib/BackupPC/Xfer.pm b/lib/BackupPC/Xfer.pm index b585e25..af20a75 100644 --- a/lib/BackupPC/Xfer.pm +++ b/lib/BackupPC/Xfer.pm @@ -43,7 +43,6 @@ use strict; use Encode qw/from_to encode/; use BackupPC::Xfer::Archive; -use BackupPC::Xfer::BackupPCd; use BackupPC::Xfer::Ftp; use BackupPC::Xfer::Protocol; use BackupPC::Xfer::Rsync; @@ -65,12 +64,6 @@ sub create $errStr = BackupPC::Xfer::Archive::errStr() if ( !defined($xfer) ); return $xfer; - } elsif ( $protocol eq 'backuppcd' ) { - - $xfer = BackupPC::Xfer::BackupPCd->new( $bpc, $args ); - $errStr = BackupPC::Xfer::BackupPCd::errStr() if ( !defined($xfer) ); - return $xfer; - } elsif ( $protocol eq 'ftp' ) { $xfer = BackupPC::Xfer::Ftp->new( $bpc, $args ); @@ -127,9 +120,6 @@ sub getShareNames } elsif ( $conf->{XferMethod} eq "rsync" || $conf->{XferMethod} eq "rsyncd" ) { $ShareNames = $conf->{RsyncShareName}; - } elsif ( $conf->{XferMethod} eq "backuppcd" ) { - $ShareNames = $conf->{BackupPCdShareName}; - } elsif ( $conf->{XferMethod} eq "smb" ) { $ShareNames = $conf->{SmbShareName}; @@ -144,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;