Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

dumpcpanurls: current configured CPAN mirror URLs

by Intrepid (Deacon)
on Aug 08, 2003 at 22:09 UTC ( #282325=snippet: print w/ replies, xml ) Need Help??

Description: Provides a perl admin or user with the list (assuming CPAN.pm has been configured previously) of the mirror site URLs that will be queried when CPAN is next run.
Updated on November 7 2004
Updated on Mon, 25 Apr 2005 UTC: added url for netselect
#!/usr/bin/env perl
# "dumpcpanurls" - list the mirrors CPAN.pm is configured to try
$\=qq{\n};
use CPAN ;
CPAN::Config->load ;
print join qq{\n}, @{$CPAN::Config->{'urllist'}} ;

Same thing as a one-liner (*nix or MSwindoze):

perl -MCPAN -le "CPAN::Config->load; print join qq(\n)=> @{ \$CPAN::Co
+nfig->{urllist} }"
#                                                remove this^ escape f
+or windows shell

As a further (obvious) tip, note that this list can then be used as input into a pipeline, say to the ping(1) command, i.e.:

dumpcpanurls | perl -le 'do{s#^\w+p://([^/]+).*#$1#;print} for(<STDIN>
+)' \
  | xargs --max-args 1 ping -c 2
or to the netselect command if you have it:
dumpcpanurls | perl -le 'do{s#^\w+p://([^/]+).*#$1#;print} for(<STDIN>
+)' \
  | xargs netselect -vv
or doing this all in perl without the extra shell pipelines:
perl -MCPAN -le \
      'CPAN::Config->load;
       system "netselect", "-vv",
          map { s#^\w+p://([^/]+).*#$1# && $_ || ""}
                      @{ $CPAN::Config->{urllist} } '
or a little more conservatively:
     perl -MCPAN -le \
     'CPAN::Config->load;
      my @hosts;
      for (@{ $CPAN::Config->{urllist} }) {
         s#^\w+p://([^/]+).*#$1# &&
           push @hosts => $_          }
      system("netselect", "-vv", @hosts) if @hosts'

It's Perl. TMTOWTDI :-)


Finding out that the first host in the list is down before running CPAN can be a Good Thing. Finding out which mirror seems fastest is also nice. ;-)

Comment on dumpcpanurls: current configured CPAN mirror URLs
Select or Download Code

Back to Snippets Section

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://282325]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (17)
As of 2015-07-02 18:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (44 votes), past polls