[pacman-dev] [PATCH] rankmirrors: Add a --repo option to target a specific repo

Daenyth daenyth at gmail.com
Sat May 15 10:27:50 EDT 2010


Signed-off-by: Daenyth <Daenyth+Arch at gmail.com>
---
 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 d5cbadd..9b4e973 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")
-- 
1.7.1



More information about the pacman-dev mailing list