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

Loui Chang louipc.ist at gmail.com
Fri May 7 16:17:51 CEST 2010


On Fri 07 May 2010 09:42 -0400, Daenyth Blank wrote:
> On Fr> On Thu, May 6, 2010 at 10:45 PM, Daenyth Blank
> <daenyth+arch at gmail.com> wrote:
> > Fail.

> Could have sworn I tested it and it worked during initial dev... I'll
> go over it soon when I have some time and resubmit.

I think your email client is causing a problem. It's attaching patches
as application/octet-stream base64 encoded.

But the patch seems to work fine for me.
Here I re-attach inline as text/plain.

-------------- next part --------------
>From 3aa3f9ce824bb0797ffe13d2b2e6eb82049b19a1 Mon Sep 17 00:00:00 2001
From: Daenyth <Daenyth+Arch at gmail.com>
Date: Sat, 20 Mar 2010 15:03:45 -0400
Subject: [PATCH] rankmirrors: Add a --repo option to target a specific repo

---
 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..54b04e0 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