diff options
author | Daenyth <Daenyth+Arch@gmail.com> | 2010-03-20 20:03:45 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2010-05-18 18:43:17 +0200 |
commit | ac722c93274157cb10f0a7b341bdbdb340847dc7 (patch) | |
tree | 601460fb9a01f52cb1d09c125dbb744303cb6afc /scripts | |
parent | c1fc00508e337f20eb94e95978e193d23cfeaf10 (diff) | |
download | pacman-ac722c93274157cb10f0a7b341bdbdb340847dc7.tar.gz pacman-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.in | 19 |
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") |