X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FZeal%2FFeed.pm;h=ba1767f83ca7f79f18b5328004924d05200a22eb;hb=ddea233ddf3095cfa6892de0ffeabb4037d6d766;hp=5964cfe878472255c681e249344d1565c3210485;hpb=1a477fa4fdc40fd4142e2a01ff12865381cd7d8e;p=zeal.git diff --git a/lib/Zeal/Feed.pm b/lib/Zeal/Feed.pm index 5964cfe..ba1767f 100644 --- a/lib/Zeal/Feed.pm +++ b/lib/Zeal/Feed.pm @@ -58,19 +58,24 @@ sub url { sub _unpack_tar_to_dir { my ($file, $dir) = @_; + $file = rel2abs $file; + my $oldwd = getcwd; + chdir $dir; my $tar = which 'tar' or which 'gtar'; + + # uncoverable branch true + # uncoverable condition false + local $ENV{ZEAL_USE_INTERNAL_TAR} = 1 if $file =~ /gz$|bz2$/ && $^O eq 'solaris'; + if ($tar && !$ENV{ZEAL_USE_INTERNAL_TAR}) { my $arg = '-xf'; $arg = '-xzf' if $file =~ /[.]t?gz$/; $arg = '-xjf' if $file =~ /[.]bz2$/; - system $tar, -C => $dir, $arg => $file + system $tar, $arg => $file } else { - $file = rel2abs $file; - my $oldwd = getcwd; - chdir $dir; Archive::Tar->extract_archive($file); - chdir $oldwd; } + chdir $oldwd; } sub download {