#!/bin/bash if [ -z "$1" ]; then echo "Usage: sel-sf-mirror " exit -1 fi . `prt-get path $1`/Pkgfile TIMEOUT=5 for s in ${source[*]}; do s=`echo $s|sed -e 's|download.sf.net|dl.sf.net|g'` s=`echo $s|sed -e 's|download.sourceforge.net|dl.sf.net|g'` s=`echo $s|sed -e 's|dl.sourceforge.net|dl.sf.net|g'` url=`echo $s|sed -e 's|^http://dl.sf.net/||g'` if [ "$url" != "$s" ]; then echo "sf url, testing hosts [$s]" hosts="`dig dl.sf.net | awk '/IN\W*A\W*[1-9]/{print $NF}'`" host="" for h in $hosts; do name=`host $h|grep "domain name"|awk '{print $NF}'|sed -e 's|\.$||g'` echo -n "Testing $name: " error="ping" ping -t $TIMEOUT -q -c 1 $name &> /dev/null if [ $? -eq 0 ]; then error="404" wget -q --timeout=$TIMEOUT --spider http://$name/$url if [ $? -eq 0 ]; then echo "ok" host="$name ($h)" break; fi fi echo "failed [http://$name/$url]" failures="$failures $name[$error]" done echo "" echo "* Host found: $host" if [ -n "$failures" ]; then echo "" echo "* Failed hosts:" for f in $failures; do echo " $f" done fi fi done