* Fixed encoding of email subject header in bin/BackupPC_sendEmail as
[BackupPC.git] / lib / BackupPC / Xfer / Archive.pm
index 1aa4e07..cb18db7 100644 (file)
@@ -11,7 +11,7 @@
 #   Craig Barratt  <cbarratt@users.sourceforge.net>
 #
 # 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.1.0, released 25 Nov 2007.
 #
 # See http://backuppc.sourceforge.net.
 #
 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;