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 )