App-MechaCPAN
view release on metacpan or search on metacpan
lib/App/MechaCPAN/Install.pm view on Meta::CPAN
$target->{sha256} = $json_data->{checksum_sha256};
}
if ( defined $url )
{
# if it's pause like, parse out the distibution's version name
if ( $url =~ $full_pause_re )
{
my $package = $3;
$target->{pathname} = "$1/$2/$3";
$target->{cpan_path} = "$1/$2";
$target->{filename} = $package;
# If CHKSIGS is enabled, we always want to check CHECKSUMS. If we have
# a sha256 from metacpan, CHECKSUMS will take precedence
if ( !$target->{sha256} || $App::MechaCPAN::CHKSIGS )
{
my $chk_url = $url;
$chk_url =~ s/$package$/CHECKSUMS/;
$target->{checksums_url} = $chk_url;
}
lib/App/MechaCPAN/Install.pm view on Meta::CPAN
my $src_tgz = fetch_file($url);
if ( my $checksums_url = $target->{checksums_url} )
{
my $filename = $target->{filename};
my $checksums = get_cpan_checksums( $checksums_url, $filename );
if ( defined $checksums )
{
my $cpan_path = $target->{cpan_path};
my $entry = $checksums->{$filename};
croak "No CHECKSUMS entry for $filename"
if !defined $entry;
croak "Mismatch 'cpan_path': $entry->{cpan_path} ne $cpan_path"
if $entry->{cpan_path} ne $cpan_path;
croak "Mismatch 'size': $entry->{size} != -s $src_tgz"
if $entry->{size} != -s $src_tgz;
$target->{sha256} = $entry->{sha256};
}
}
if ( $target->{sha256} )
{
$src_tgz = {
( run in 0.649 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )