Show
Ignore:
Timestamp:
11/01/08 11:15:10 (2 months ago)
Author:
charsbar
Message:

Acme-CPANAuthors: remove CPAN::Config dep; try to find CPAN sources via CPANPLUS config, too; 0.06 -> CPAN

Location:
lang/perl/Acme-CPANAuthors/trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Acme-CPANAuthors/trunk/Changes

    r22225 r22480  
    11Revision history for Acme-CPANAuthors 
     2 
     30.06 2008/11/01 
     4  - removed CPAN::Config dependency (RT #40560 by Slaven Rezic) 
     5  - try to find CPAN sources via CPANPLUS configuration too 
    26 
    370.05 2008/10/27 
  • lang/perl/Acme-CPANAuthors/trunk/Makefile.PL

    r13053 r22480  
    1010  PREREQ_PM => { 
    1111    'Carp'                   => 0, 
    12     'CPAN::Config'           => 0, 
    1312    'Exporter'               => 0, 
    1413    'File::Spec'             => 0, 
  • lang/perl/Acme-CPANAuthors/trunk/lib/Acme/CPANAuthors.pm

    r22225 r22480  
    66use Acme::CPANAuthors::Utils qw( cpan_authors cpan_packages ); 
    77 
    8 our $VERSION = '0.05'; 
     8our $VERSION = '0.06'; 
    99 
    1010sub new { 
  • lang/perl/Acme-CPANAuthors/trunk/lib/Acme/CPANAuthors/Utils.pm

    r15782 r22480  
    4242  my ($dir, $basename) = @_; 
    4343 
     44  my $file; 
     45 
     46  # see if CPAN is configured 
    4447  _require_myconfig_or_config(); 
    45   croak "You might want to configure CPAN first." 
    46     unless $CPAN::Config && ref $CPAN::Config eq 'HASH'; 
    47  
    48   my $source_dir = $CPAN::Config->{keep_source_where}; 
    49   my $file = _catfile( $source_dir, '/', $dir, '/', $basename ); 
    50   unless ( -f $file ) { 
    51     require URI::file; 
    52     foreach my $url ( @{ $CPAN::Config->{urllist} || [] } ) { 
    53       next unless $url =~ s{^file://}{/}; 
    54       $file = URI::file->new(join '/', $url, $dir, $basename )->file; 
    55       last if -f $file; 
     48  if ( $CPAN::Config && ref $CPAN::Config eq 'HASH' ) { 
     49    my $source_dir = $CPAN::Config->{keep_source_where}; 
     50    $file = _catfile( $source_dir, $dir, $basename ); 
     51    unless ( -f $file ) { 
     52      require URI::file; 
     53      foreach my $url ( @{ $CPAN::Config->{urllist} || [] } ) { 
     54        next unless $url =~ s{^file://}{/}; 
     55        $file = URI::file->new(join '/', $url, $dir, $basename )->file; 
     56        last if -f $file; 
     57      } 
     58    } 
     59    unless ( -f $file ) { 
     60      $file = _catfile( $source_dir, $dir, "$basename.bak" ); 
     61    } 
     62    unless ( -f $file ) { 
     63      $file = _catfile( $source_dir, $basename ); 
    5664    } 
    5765  } 
    58   unless ( -f $file ) { 
    59     $file = _catfile( $source_dir, '/', $dir, '/', "$basename.bak" ); 
     66 
     67  # see if CPANPLUS is configured 
     68  eval { require CPANPLUS::Configure }; 
     69  unless ($@) { 
     70    # XXX: should also support custom-sources directory? 
     71    my $source_dir = CPANPLUS::Configure->new->get_conf('base'); 
     72    my $cpanplus_file = _catfile( $source_dir, $basename ); 
     73    if ( -f $cpanplus_file ) { 
     74      $file ||= $cpanplus_file; 
     75      if ( (stat($file))[9] < (stat($cpanplus_file))[9] ) { 
     76        $file = $cpanplus_file; 
     77      } 
     78    } 
    6079  } 
    61   unless ( -f $file ) { 
    62     $file = _catfile( $source_dir, '/', $basename ); 
    63   } 
    64   croak "$file not found" unless -f $file; 
     80 
     81  croak "$file not found; You might want to configure CPAN first." unless -f $file; 
    6582 
    6683  return $file;