blob: 63e29945ac8843a3d57fd2da788a52e629a77d83 [file] [log] [blame]
#!/bin/bash
# Simple script to count number of mirrors available for a particular URL
# Copyright (c) 2009 IBM
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# David Williams - initial API and implementation
function usage() {
printf "\n\tSimple script to count number of mirrors available for a particular URL" >&2
printf "\n\tUsage: %s [-h] | [-v] [-f] [-p] urls" $(basename $0) >&2
printf "\n\t\t%s" "where h==help, v==verbose, f==only ftp mirrors, p==only http mirrors " >&2
printf "\n\t\t%s" "and urls is space delimited list of URL parameters," >&2
printf "\n\t\t%s\n" "such as /ganymede/releases/site.xml" >&2
}
function checkMirrorsForURL() {
if [ -z $1 ]
then
echo "Error: internal funtion requires mirror url parameter";
exit 3;
else
mirrorURL=$1
fi
if [ -z $2 ]
then
protocol=
pword="http and ftp"
else
protocolarg="&protocol=$2"
pword="$2"
fi
nMirrors=$(wget -q -O - "http://www.eclipse.org/downloads/download.php?file=${mirrorURL}&format=xml${protocolarg}" | grep \<mirror\ | wc -l)
echo " number of" ${pword} "mirrors: " ${nMirrors} " for" ${mirrorURL}
}
urls=
ftponly=0
httponly=0
protocol=
while getopts 'hvfp' OPTION
do
case $OPTION in
h) usage
exit 1
;;
f) ftponly=1
;;
p) httponly=1
;;
v) verbose=1
;;
?) usage
exit 2
;;
esac
done
shift $(($OPTIND - 1))
urls=$*
if [ $ftponly == 1 ]
then
protocol="ftp"
fi
if [ $httponly == 1 ]
then
protocol="http"
fi
if [ $ftponly == 1 -a $httponly == 1 ]
then
protocol=
fi
if [ $verbose ]
then
echo "ftponly: " $ftponly " httponly: " $httponly
echo "protocol: " $protocol
echo "urls: " $urls
fi
if [ "${urls}" ]
then
echo
for mirrorURL in $urls
do
checkMirrorsForURL $mirrorURL $protocol
done
echo
else
usage
fi