summaryrefslogtreecommitdiffstats
path: root/scripts/rankmirrors
diff options
context:
space:
mode:
authorScott Horowitz <stonecrest@gmail.com>2007-04-23 06:07:50 +0200
committerDan McGee <dan@archlinux.org>2007-04-23 06:30:45 +0200
commitd1c3bd62def7bdabfde9295e65e9be77c13342f4 (patch)
treead1e9db64947b8606ef99a499875978559943da1 /scripts/rankmirrors
parent8e694dc40f241bf33e1ca291faec5202aa41d0c9 (diff)
downloadpacman-d1c3bd62def7bdabfde9295e65e9be77c13342f4.tar.gz
pacman-d1c3bd62def7bdabfde9295e65e9be77c13342f4.tar.xz
rankmirrors: download first 50KB of DB to get more reliable numbers
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'scripts/rankmirrors')
-rwxr-xr-xscripts/rankmirrors20
1 files changed, 18 insertions, 2 deletions
diff --git a/scripts/rankmirrors b/scripts/rankmirrors
index b2cfd18c..3eb10b5a 100755
--- a/scripts/rankmirrors
+++ b/scripts/rankmirrors
@@ -55,7 +55,8 @@ def timeCmd(cmd):
def talkToServer(serverUrl):
opener = urllib2.build_opener()
- tmp = opener.open(serverUrl).read()
+ # retrieve first 50,000 bytes only
+ tmp = opener.open(serverUrl).read(50000)
def getFuncToTime(serverUrl):
return lambda : talkToServer(serverUrl)
@@ -139,8 +140,23 @@ if __name__ == "__main__":
elif options.times:
print ' * ',
sys.stdout.flush()
+
+ # add *.db.tar.gz to server name. the repo name is parsed
+ # from the mirror url; it is the third (or fourth) dir
+ # from the end, where the url is http://foo/bar/REPO/os/arch
+ try:
+ splitted2 = serverUrl.split('/')
+ if serverUrl[-1] != '/':
+ repoName = splitted2[-3]
+ dbFileName = '/' + repoName + '.db.tar.gz'
+ else:
+ repoName = splitted2[-4]
+ dbFileName = repoName + '.db.tar.gz'
+ except:
+ dbFileName = ''
+
try:
- serverToTime[serverUrl] = timeCmd(getFuncToTime(serverUrl))
+ serverToTime[serverUrl] = timeCmd(getFuncToTime(serverUrl + dbFileName))
if options.verbose:
try:
print "%.2f" % serverToTime[serverUrl]