Acme-CPANAuthors

 view release on metacpan or  search on metacpan

lib/Acme/CPANAuthors/Utils.pm  view on Meta::CPAN


sub _cpan_file {
  my ($dir, $basename) = @_;

  my $file;
  if ($ENV{ACME_CPANAUTHORS_HOME}) {
    $file = _catfile($ENV{ACME_CPANAUTHORS_HOME}, $dir, $basename);
    return $file if $file && -r $file;
  }
  require File::Path;
  for my $parent (File::Spec->tmpdir, '.') {
    my $tmpdir = File::Spec->catdir($parent, '.acmecpanauthors', $dir);
    eval { File::Path::mkpath($tmpdir) };
    next unless -d $tmpdir && -r _;
    $file = _catfile($tmpdir, $basename);
    my $how_old = -M $file;
    if (!-r $file or !$how_old or $how_old > 1) {
      require HTTP::Tiny;
      my $ua = HTTP::Tiny->new(env_proxy => 1);
      my $res = $ua->mirror('http://www.cpan.org/'.$dir.'/'.$basename, $file);
      next unless $res->{success};
    }



( run in 0.292 second using v1.01-cache-2.11-cpan-4d50c553e7e )