use BackupPC::SearchLib;
use Cwd qw/abs_path/;
use File::Which;
-use Archive::Tar;
+use Archive::Tar::Streamed;
use Algorithm::Diff;
use Getopt::Std;
tar_join($filename);
}
- my $tar = Archive::Tar->new;
- my $comp = 0;
- $comp = 1 if ($filename =~ m/\.(gz|tgz)$/);
print STDERR ", opening" if ($debug);
- $tar->read($filename, $comp) or die "can't open $filename: $!";
+ open(my $fh, "gzip -cd $filename |") or die "can't open $filename: $!";
+ binmode($fh);
+ my $tar = Archive::Tar::Streamed->new($fh);
print STDERR ", tar" if ($debug);
- my @tar_files = sort $tar->list_files();
+ my @tar_files;
+ while(my $entry = $tar->next) {
+ push @tar_files, $entry->name;
+ }
+ @tar_files = sort @tar_files;
print STDERR " ",($#tar_files + 1), " files" if ($debug);
print STDERR ", database" if ($debug);