This was posted last year but I found a need for it today. I had trouble running the script as it was. I had change the ppm to ppm3 and change the word repository to rep.
This is a very useful script thanks for writing it.
#updateWorkingRepositories.pl
use strict;
use warnings;
use PPM::Repositories;
use Net::Ping;
remove_non_active_state_repositories();
add_repositories();
#remove all repositories, except the repositories that come installed
+by default with
ActiveState.
sub remove_non_active_state_repositories {
my @repositories;
<b>my $result = `ppm3 rep`;</b>
for (split /[\r\n]/, $result) {
#parsing lines that looks like
#[ 3] jenda
my ($number, $repository) = $_ =~ /(\[[^>]*\]\s)(.*)/;
if ($repository) {
unless ($repository =~ /activestate/i) {
print `ppm3 rep delete
$repository` unless (/activestate/i); }
}
}
}
sub add_repositories {
for ( keys %Repositories )
{
my $repository = $_;
my $location = $Repositories{$_}->{location};
my $domain = trim_domain($location);
my $p = Net::Ping->new('icmp');
if ( $p->ping($domain) ) {
print "$repository is alive.\n";
print `ppm3 rep add $repository $location` . "\n\n"; } else {
print "$repository is dead.\n";
}
}
}
#function that trims a domain
sub trim_domain {
$_ = my $original_input = shift;
$_ =~ s/^\s+//; #strip spaces at start of string
$_ =~ s/\s+$//; #strip spaces at end of string
$_ =~ s|^http://||; # strip http:// at begining
$_ =~ s|/.*$||; # strip everything after the first /
my $trimmed_domain = $_;
unless ($trimmed_domain) {
logMessage("trim_domain had a problem trimming $original_input
+");
carp ("trim_domain had a problem trimming $original_input");
$trimmed_domain = "$original_input couldn't be trimmed in trim
+_domain";
}
return $trimmed_domain;
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|