#!/usr/bin/perl # # poll-mirrors.pl # # This script is designed to poll download sites after posting a release # and print out notice as each becomes available. The RM can use this # script to delay the release announcement until the release can be # downloaded. # # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # use strict; use warnings; use Getopt::Long; use POSIX qw/strftime/; use LWP::UserAgent; my $version; my $interval = 300; my $quiet = 0; my $result = GetOptions ("version=s" => \$version, "interval=i" => \$interval); my $usage = "$0 -v version [ -i interval (seconds; default: 300) ]"; unless ($result) { print STDERR $usage; exit(1); } unless (defined($version) && $version =~ /\d+(?:\.\d+)+/) { print STDERR "You must specify the release version.\n$usage"; exit(1); } my $previously_selected = select STDOUT; $| = 1; # turn off buffering of STDOUT, so status is printed immediately select $previously_selected; my $apache_url_suffix = "lucene/java/$version/KEYS"; my $apache_mirrors_list_url = "http://www.apache.org/mirrors/"; my $maven_url = "http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/$version/lucene-core-$version.pom.asc"; my $agent = LWP::UserAgent->new(); $agent->timeout(2); my $maven_available = 0; my @apache_mirrors = (); my $apache_mirrors_list_page = $agent->get($apache_mirrors_list_url)->decoded_content; if (defined($apache_mirrors_list_page)) { #