import-tars: Add support for tarballs compressed with lzma, xz

Also handle the extensions .tlz and .txz, aliases for .tar.lzma and
.tar.xz respectively.

Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
Liked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ingmar Vanhassel 2009-10-20 12:29:32 +02:00 committed by Junio C Hamano
parent 78d553b7d7
commit 2a94552887

View File

@ -20,7 +20,7 @@ use Getopt::Long;
my $metaext = ''; my $metaext = '';
die "usage: import-tars [--metainfo=extension] *.tar.{gz,bz2,Z}\n" die "usage: import-tars [--metainfo=extension] *.tar.{gz,bz2,lzma,xz,Z}\n"
unless GetOptions('metainfo=s' => \$metaext) && @ARGV; unless GetOptions('metainfo=s' => \$metaext) && @ARGV;
my $branch_name = 'import-tars'; my $branch_name = 'import-tars';
@ -49,6 +49,9 @@ foreach my $tar_file (@ARGV)
} elsif ($tar_name =~ s/\.tar\.Z$//) { } elsif ($tar_name =~ s/\.tar\.Z$//) {
open(I, '-|', 'uncompress', '-c', $tar_file) open(I, '-|', 'uncompress', '-c', $tar_file)
or die "Unable to uncompress -c $tar_file: $!\n"; or die "Unable to uncompress -c $tar_file: $!\n";
} elsif ($tar_name =~ s/\.(tar\.(lzma|xz)|(tlz|txz))$//) {
open(I, '-|', 'xz', '-dc', $tar_file)
or die "Unable to xz -dc $tar_file: $!\n";
} elsif ($tar_name =~ s/\.tar$//) { } elsif ($tar_name =~ s/\.tar$//) {
open(I, $tar_file) or die "Unable to open $tar_file: $!\n"; open(I, $tar_file) or die "Unable to open $tar_file: $!\n";
} else { } else {