224cbcdea914a0c4e8b93d5c297c0cda3f147b2f
[grml-mirrors.git] / bin / generate_mirror_map
1 #!/usr/bin/perl
2
3 use lib '/usr/share/perl5/';
4
5 use Mirmon::Mirmon ;
6
7 $m = Mirmon -> new ( '/etc/mirmon.conf' ); 
8
9 $conf  = $m->conf  ; # a Mirmon::Conf object
10 $state = $m->state ; # the mirmon state
11
12 use Data::Dumper;
13 my $mirrors;
14 foreach my $url ( keys %{$state} ) { 
15         next unless $url =~ /^http/;
16         $mirror = $state -> { $url } ; # a Mirmon::Mirror object
17         my ($time, $history) = split('-', $mirror->{state_history});
18         my $last_state = substr($history,-1,1);
19         next if $last_state eq 'f';
20         my $region = $mirror->region;
21         $mirrors->{ $region } ||= [];
22         $url =~ s/^http:\/\///;
23         push @{$mirrors->{ $region }}, $url;
24 }
25
26 foreach my $region (keys %{$mirrors}) {
27         printf ("%s %s\n", lc($region), join('|', @{$mirrors->{$region}}));
28 }