1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
package Archive::Peek::Tar;
use Moo;
use Carp qw(confess);
use Archive::Tar;
extends 'Archive::Peek';
sub tar {
my $self = shift;
my $filename = $self->filename;
my $tar = Archive::Tar->new( $filename->stringify )
|| confess("Error reading $filename");
return $tar;
}
sub files {
my $self = shift;
my $tar = $self->tar;
my @files
= sort map { $_->full_path } grep { $_->is_file } $tar->get_files();
return @files;
}
sub file {
my ( $self, $filename ) = @_;
my $tar = $self->tar;
return $tar->get_content($filename);
}
1;
|