summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorDaenyth <Daenyth+Arch@gmail.com>2010-03-20 15:03:45 -0400
committerDan McGee <dan@archlinux.org>2010-05-18 11:43:17 -0500
commitac722c93274157cb10f0a7b341bdbdb340847dc7 (patch)
tree601460fb9a01f52cb1d09c125dbb744303cb6afc /scripts
parentc1fc00508e337f20eb94e95978e193d23cfeaf10 (diff)
downloadpacman-ac722c93274157cb10f0a7b341bdbdb340847dc7.tar.xz
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>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/rankmirrors.sh.in19
1 files changed, 14 insertions, 5 deletions
diff --git a/scripts/rankmirrors.sh.in b/scripts/rankmirrors.sh.in
index d5cbaddd..9b4e973a 100644
--- a/scripts/rankmirrors.sh.in
+++ b/scripts/rankmirrors.sh.in
@@ -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")