Release for 3.2.0. Changes since 3.2.0beta1:
[BackupPC.git] / bin / BackupPC_tarCreate
index 5548672..bb9f696 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/perl
+#!/usr/bin/perl
 #============================================================= -*-perl-*-
 #
 # BackupPC_tarCreate: create a tar archive of an existing dump
@@ -21,8 +21,8 @@
 #       -t              print summary totals
 #       -r pathRemove   path prefix that will be replaced with pathAdd
 #       -p pathAdd      new path prefix
-#       -b BLOCKS       BLOCKS x 512 bytes per record (default 20; same as tar)
-#       -w writeBufSz   write buffer size (default 1MB)
+#       -b BLOCKS       output write buffer size in 512-byte blocks (default 20; same as tar)
+#       -w readBufSz    buffer size for reading files (default 1048576 = 1MB)
 #       -e charset      charset for encoding file names (default: value of
 #                       $Conf{ClientCharset} when backup was done)
 #       -l              just print a file listing; don't generate an archive
@@ -37,7 +37,7 @@
 #   Craig Barratt  <cbarratt@users.sourceforge.net>
 #
 # COPYRIGHT
-#   Copyright (C) 2001-2003  Craig Barratt
+#   Copyright (C) 2001-2009  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
@@ -55,7 +55,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0, released 28 Jan 2007.
+# Version 3.2.0, released 31 Jul 2010.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -90,10 +90,12 @@ usage: $0 [options] files/directories...
      -t              print summary totals
      -r pathRemove   path prefix that will be replaced with pathAdd
      -p pathAdd      new path prefix
-     -b BLOCKS       BLOCKS x 512 bytes per record (default 20; same as tar)
-     -w writeBufSz   write buffer size (default 1048576 = 1MB)
+     -b BLOCKS       output write buffer size in 512-byte blocks (default 20; same as tar)
+     -w readBufSz    buffer size for reading files (default 1048576 = 1MB)
      -e charset      charset for encoding file names (default: value of
                      \$Conf{ClientCharset} when backup was done)
+     -l              just print a file listing; don't generate an archive
+     -L              just print a detailed file listing; don't generate an archive
 EOF
     exit(1);
 }
@@ -184,13 +186,15 @@ if ( $ShareName eq "*" ) {
     archiveWriteHardLinks($fh);
 }
 
-#
-# Finish with two null 512 byte headers, and then round out a full
-# block.
-# 
-my $data = "\0" x ($tar_header_length * 2);
-TarWrite($fh, \$data);
-TarWrite($fh, undef);
+if ( !$opts{l} && !$opts{L} ) {
+    #
+    # Finish with two null 512 byte headers, and then round out a full
+    # block.
+    # 
+    my $data = "\0" x ($tar_header_length * 2);
+    TarWrite($fh, \$data);
+    TarWrite($fh, undef);
+}
 
 #
 # print out totals if requested
@@ -597,6 +601,12 @@ sub TarWriteFile
         $hdr->{size} = 0;
         TarWriteFileInfo($fh, $hdr);
        $SpecialCnt++;
+    } elsif ( $hdr->{type} == BPC_FTYPE_SOCKET
+           || $hdr->{type} == BPC_FTYPE_UNKNOWN ) {
+        #
+        # ignore these two file types - these are dynamic file types created
+        # by applications as needed
+        #
     } else {
         print(STDERR "Got unknown type $hdr->{type} for $hdr->{name}\n");
        $ErrorCnt++;