rankmirrors: Add a --repo option to target a specific repo

Signed-off-by: Daenyth <Daenyth+Arch@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Daenyth 2010-03-20 15:03:45 -04:00 committed by Dan McGee
parent c1fc00508e
commit ac722c9327
1 changed files with 14 additions and 5 deletions

View File

@ -35,6 +35,7 @@ usage() {
echo " -t, --times only output mirrors and their response times"
echo " -u, --url test a specific url"
echo " -v, --verbose be verbose in ouptut"
echo " -r, --repo specify a specific repo name instead of guessing"
exit 0
}
@ -69,13 +70,18 @@ ARCH="$(uname -m)"
getfetchurl() {
local strippedurl="${1%/}"
local replacedurl="${strippedurl//'$repo'/core}"
replacedurl="${replacedurl//'$arch'/$ARCH}"
local replacedurl="${replacedurl//'$arch'/$ARCH}"
if [[ ! $TARGETREPO ]]; then
replacedurl="${strippedurl//'$repo'/core}"
local tmp="${replacedurl%/*}"
tmp="${tmp%/*}"
local tmp="${replacedurl%/*}"
tmp="${tmp%/*}"
local reponame="${tmp##*/}"
else
replacedurl="${strippedurl//'$repo'/$TARGETREPO}"
local reponame="$TARGETREPO"
fi
local reponame="${tmp##*/}"
if [[ -z $reponame || $reponame = $replacedurl ]]; then
echo "fail"
else
@ -119,6 +125,7 @@ while [[ $1 ]]; do
times) TIMESONLY=1 ; shift ;;
verbose) VERBOSE=1 ; shift ;;
url) CHECKURL=1; [[ $2 ]] || err "Must specify url."; URL="$2"; shift 2;;
repo) [[ $2 ]] || err "Must specify repo name."; TARGETREPO="$2"; shift 2;;
*) err "\`$1' is an invalid argument."
esac
elif [[ ${1:0:1} = - ]]; then
@ -136,6 +143,7 @@ while [[ $1 ]]; do
t) TIMESONLY=1 ;;
v) VERBOSE=1 ;;
u) CHECKURL=1; [[ $2 ]] || err "Must specify url."; URL="$2"; snum=2;;
r) [[ $2 ]] || err "Must specify repo name."; TARGETREPO="$2"; snum=2;;
n) [[ $2 ]] || err "Must specify number." ; NUM="$2" ; snum=2;;
*) err "\`-$1' is an invald argument." ;;
esac
@ -182,6 +190,7 @@ for line in "${linearray[@]}"; do
# Getting values and times and such
server="${line#*= }"
server="${server%%#*}"
url="$(getfetchurl "$server")"
[[ $url = fail ]] && err "url \`$URL' is malformed."
time=$(gettime "$url")