summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlorry.tar-importer7
1 files changed, 6 insertions, 1 deletions
diff --git a/lorry.tar-importer b/lorry.tar-importer
index 904f8d8..d4d27f5 100755
--- a/lorry.tar-importer
+++ b/lorry.tar-importer
@@ -103,11 +103,16 @@ foreach my $tar_file (@ARGV)
$mtime = oct $mtime;
next if $typeflag == 5; # directory
- print FI "blob\n", "mark :$next_mark\n";
if ($typeflag == 2) { # symbolic link
+ print FI "blob\n", "mark :$next_mark\n";
print FI "data ", length($linkname), "\n", $linkname;
$mode = 0120000;
+ } elsif ($typeflag eq 'x') { # extended header
+ # skip header contents
+ $size -= 512 while ($size > 0 && read(I, $_, 512) == 512);
+ next;
} else {
+ print FI "blob\n", "mark :$next_mark\n";
print FI "data $size\n";
while ($size > 0 && read(I, $_, 512) == 512) {
print FI substr($_, 0, $size);