diff --git a/plugins/org.eclipse.wtp.releng.tools/examplebinscripts/checkMirrors.sh b/plugins/org.eclipse.wtp.releng.tools/examplebinscripts/checkMirrors.sh index 63e29945ac8843a3d57fd2da788a52e629a77d83..dff875dc62fc80687685eb154f2612fcc1498a1d 100644 --- a/plugins/org.eclipse.wtp.releng.tools/examplebinscripts/checkMirrors.sh +++ b/plugins/org.eclipse.wtp.releng.tools/examplebinscripts/checkMirrors.sh @@ -14,8 +14,8 @@ 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\tUsage: %s [-h] | [-v] [-f] [-p] [-t number] urls" $(basename $0) >&2 + printf "\n\t\t%s" "where h==help, v==verbose, f==only ftp mirrors, p==only http mirrors, t==test against 'number' " >&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 } @@ -39,15 +39,34 @@ function checkMirrorsForURL() { 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} + echo " number of" ${pword} "mirrors: " ${nMirrors} " for" ${mirrorURL} >&2 + echo $nMirrors +} +function minvalue() { +ref=$1 +comp=$2 +result= +if [ -z $comp ] +then + result=$ref +else + if [ $ref -lt $comp ] + then + result=$ref + else + result=$comp + fi +fi +echo $result } + urls= ftponly=0 httponly=0 protocol= -while getopts 'hvfp' OPTION +while getopts 'hvfpt:' OPTION do case $OPTION in h) usage @@ -59,6 +78,8 @@ do ;; v) verbose=1 ;; + t) testNumber=$OPTARG + ;; ?) usage exit 2 ;; @@ -67,7 +88,7 @@ done shift $(($OPTIND - 1)) -urls=$* +urls="$@" if [ $ftponly == 1 ] then @@ -89,14 +110,41 @@ then echo "urls: " $urls fi +minimumMirrors= if [ "${urls}" ] then echo - for mirrorURL in $urls + for mirrorURL in ${urls} do - checkMirrorsForURL $mirrorURL $protocol + nm=$(checkMirrorsForURL $mirrorURL $protocol) + minimumMirrors=`minvalue $nm $minimumMirrors` done echo else usage fi + +if [ -z $testNumber ] +then + if [ $verbose ] + then + echo "no test mode" + fi + exit 0 +else + fresult=$((testNumber - minimumMirrors)) + if [ $fresult -le 0 ] + then + if [ $verbose ] + then + echo "minimum mirrors was greater than or equal to criteria" + fi + exit 0 + else + if [ $verbose ] + then + echo "minimum mirrors was not as large as criteria" + fi + exit $fresult + fi +fi \ No newline at end of file