X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FXfer%2FArchive.pm;h=ecb62ba16024efd1fab684193e896826ff3f456e;hp=1aa4e0700f09e59c46fc2dc6989a5987a8535599;hb=f6fbcc3682d2bc9e7dfdc26e95bd5fcdb359496d;hpb=b2013172257d98277042670101493c88d3b3dfe7 diff --git a/lib/BackupPC/Xfer/Archive.pm b/lib/BackupPC/Xfer/Archive.pm index 1aa4e07..ecb62ba 100644 --- a/lib/BackupPC/Xfer/Archive.pm +++ b/lib/BackupPC/Xfer/Archive.pm @@ -11,7 +11,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001-2003 Craig Barratt +# Copyright (C) 2001-2007 Craig Barratt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ # #======================================================================== # -# Version 2.1.0_CVS, released 3 Jul 2003. +# Version 3.2.0beta0, released 5 April 2009. # # See http://backuppc.sourceforge.net. # @@ -38,40 +38,7 @@ package BackupPC::Xfer::Archive; use strict; - -sub new -{ - my($class, $bpc, $args) = @_; - - $args ||= {}; - my $t = bless { - bpc => $bpc, - conf => { $bpc->Conf }, - host => "", - hostIP => "", - shareName => "", - pipeRH => undef, - pipeWH => undef, - badFiles => [], - %$args, - }, $class; - - return $t; -} - -sub args -{ - my($t, $args) = @_; - - foreach my $arg ( keys(%$args) ) { - $t->{$arg} = $args->{$arg}; - } -} - -sub useArchive -{ - return 1; -} +use base qw(BackupPC::Xfer::Protocol); sub start { @@ -90,66 +57,44 @@ sub run $t->{xferOK} = 1; @HostList = $t->{HostList}; @BackupList = $t->{BackupList}; - my $i=0; - my $tarCreatePath = $conf->{InstallDir} . "/bin/BackupPC_tarCreate"; + my $i = 0; + my $tarCreatePath = "$conf->{InstallDir}/bin/BackupPC_tarCreate"; while (${@HostList[0]}[$i]) { - # - # Merge variables into @archiveClientCmd - # - my $cmdargs = { - archiveloc => $t->{archiveloc}, - parfile => $t->{parfile}, - compression => $t->{compression}, - compext => $t->{compext}, - splitsize => $t->{splitsize}, - host => ${@HostList[0]}[$i], - backupnumber => ${@BackupList[0]}[$i], - Installdir => $conf->{InstallDir}, - tarCreatePath => $tarCreatePath, - splitpath => $conf->{SplitPath}, - parpath => $conf->{ParPath}, - }; - - $archiveClientCmd2 = $bpc->cmdVarSubstitute($archiveClientCmd, $cmdargs); - $t->{XferLOG}->write(\"Executing: @$archiveClientCmd2\n"); - - $bpc->cmdSystemOrEval($archiveClientCmd2, + # + # Merge variables into @archiveClientCmd + # + my $errStr; + my $cmdargs = { + archiveloc => $t->{archiveloc}, + parfile => $t->{parfile}, + compression => $t->{compression}, + compext => $t->{compext}, + splitsize => $t->{splitsize}, + host => ${@HostList[0]}[$i], + backupnumber => ${@BackupList[0]}[$i], + Installdir => $conf->{InstallDir}, + tarCreatePath => $tarCreatePath, + splitpath => $conf->{SplitPath}, + parpath => $conf->{ParPath}, + }; + + $archiveClientCmd2 = $bpc->cmdVarSubstitute($archiveClientCmd, + $cmdargs); + $t->{XferLOG}->write(\"Executing: @$archiveClientCmd2\n"); + + $bpc->cmdSystemOrEvalLong($archiveClientCmd2, sub { + $errStr = $_[0]; $t->{XferLOG}->write(\$_[0]); - }); - - $i++; + }, 0, $t->{pidHandler}); + if ( $? ) { + ($t->{_errStr} = $errStr) =~ s/[\n\r]+//; + return; + } + $i++; } $t->{XferLOG}->write(\"Completed Archive\n"); return "Completed Archive"; } -sub errStr -{ - my($t) = @_; - - return $t->{_errStr}; -} - -sub xferPid -{ - my($t) = @_; - - return ($t->{xferPid}); -} - -sub logMsg -{ - my($t, $msg) = @_; - - push(@{$t->{_logMsg}}, $msg); -} - -sub logMsgGet -{ - my($t) = @_; - - return shift(@{$t->{_logMsg}}); -} - 1;