File: Tar.pm

package info (click to toggle)
libarchive-peek-perl 0.37-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 104 kB
  • sloc: perl: 159; makefile: 2
file content (32 lines) | stat: -rw-r--r-- 593 bytes parent folder | download
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;