42 lines
744 B
Perl
42 lines
744 B
Perl
package CPAN::Audit::Discover::CpanfileSnapshot;
|
|
use strict;
|
|
use warnings;
|
|
use CPAN::DistnameInfo;
|
|
|
|
sub new {
|
|
my $class = shift;
|
|
|
|
my $self = {};
|
|
bless $self, $class;
|
|
|
|
return $self;
|
|
}
|
|
|
|
sub discover {
|
|
my $self = shift;
|
|
my ($cpanfile_snapshot_path) = @_;
|
|
|
|
open my $fh, '<', $cpanfile_snapshot_path or die $!;
|
|
|
|
my @deps;
|
|
while ( defined( my $line = <$fh> ) ) {
|
|
if ( $line =~ m/pathname: ([^\s]+)/ ) {
|
|
next unless my $d = CPAN::DistnameInfo->new($1);
|
|
|
|
next unless $d->dist && $d->version;
|
|
|
|
push @deps,
|
|
{
|
|
dist => $d->dist,
|
|
version => $d->version,
|
|
};
|
|
}
|
|
}
|
|
|
|
close $fh;
|
|
|
|
return @deps;
|
|
}
|
|
|
|
1;
|