[pacman-dev] rankmirrors script
Here is a alternative to the current sortmirrrors script. It was
designed to address this bug: http://bugs.archlinux.org/task/2952. It
does not touch your current mirror lists, it simply reads them and
outputs timing information for each, and outputs a Server format that
can be used in the mirrors list.
I've never done any python before, and this is heavily based off the
script found in the forums but slightly refined to do different and
slightly more intuitive output.
(http://bbs.archlinux.org/viewtopic.php?t=19278&sid=475ab18a5d9b31952459fd9912d20d19)
Dan
__________________________________
#! /usr/bin/python
#
# rankmirrors : read a list of mirrors from a file and rank them by speed
#
# Original Idea copyright (c) 2006 R.G. <chesercat>
# Modified 2006 by Dan McGee
On 12/8/06, Dan McGee
Here is a alternative to the current sortmirrrors script. It was designed to address this bug: http://bugs.archlinux.org/task/2952. It does not touch your current mirror lists, it simply reads them and outputs timing information for each, and outputs a Server format that can be used in the mirrors list.
Great - I'm testing it out right now, and will most likely include it in pacman cvs. One note however: the usage doesn't mention the need for a pacman.d file. I'll let you fix that one however you like 8) Thanks!
On 12/8/06, Aaron Griffin
On 12/8/06, Dan McGee
wrote: Here is a alternative to the current sortmirrrors script. It was designed to address this bug: http://bugs.archlinux.org/task/2952. It does not touch your current mirror lists, it simply reads them and outputs timing information for each, and outputs a Server format that can be used in the mirrors list.
Great - I'm testing it out right now, and will most likely include it in pacman cvs. One note however: the usage doesn't mention the need for a pacman.d file. I'll let you fix that one however you like 8)
Thanks!
With my limited knowledge of python (about 2 hours now), I'll see what I can do. Let me know if you have any more suggestions for additions. By the way, I also asked the original for permission to include it and it is no problem, I put the copyright line as he requested at the top.
On 12/8/06, Dan McGee
With my limited knowledge of python (about 2 hours now), I'll see what I can do. Let me know if you have any more suggestions for additions.
I just mean something like this: $ diff -u rankmirrors rankmirrors.2 --- rankmirrors 2006-12-08 13:56:54.000000000 -0600 +++ rankmirrors.2 2006-12-08 14:09:19.000000000 -0600 @@ -26,7 +26,7 @@ socket.setdefaulttimeout(10) def createOptParser(): - parser = OptionParser() + parser = OptionParser(usage="usage: %prog [options] <server list file>") parser.add_option("-n", dest="num", default=0, help="number of servers to print, 0 for all") parser.add_option("-v", "--verbose", action="store_true", dest="verbose", As for other suggestions, the only thing I can think of is an option to output in "file format" - that is, everything prefixed with '#' except the server lines, so one could just > it to a file.
Version 2 adds the file format option, as well as adds some
description and usage information. I also fixed all the indenting to
make it more consistent and added a vim modeline at the end. Let me
know what you think.
_______________
#! /usr/bin/python
#
# rankmirrors : read a list of mirrors from a file and rank them by speed
#
# Original Idea copyright (c) 2006 R.G. <chesercat>
# Modified 2006 by Dan McGee
On 12/8/06, Dan McGee
Version 2 adds the file format option, as well as adds some description and usage information. I also fixed all the indenting to make it more consistent and added a vim modeline at the end. Let me know what you think.
Added to cvs. Thanks alot.
kris|~$ pacrankmirrors File "/home/kris/bin/pacrankmirrors", line 28 description = "Ranks pacman mirrors by their connection and ^ SyntaxError: EOL while scanning single-quoted string i fixed it though by making the first 28 -> lines into one-lines but maybe someone else experiences this. -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
That line with the description has to be on one line. This patch should fix that, a problem in a parser.add_option, and the Gmail inserted "Show quoted text". Dan --- pacman-lib.orig/scripts/rankmirrors 2006-12-08 17:07:34.000000000 -0500 +++ pacman-lib/scripts/rankmirrors 2006-12-08 17:35:09.000000000 -0500 @@ -25,16 +25,14 @@ def createOptParser(): usage = "usage: %prog [options] MIRRORFILE" - description = "Ranks pacman mirrors by their connection and -opening speed. Pacman mirror files are located in /etc/pacman.d/." + description = "Ranks pacman mirrors by their connection and opening speed. Pacman mirror files are located in /etc/pacman.d/." parser = OptionParser(usage=usage,description=description) parser.add_option("-f", "--formatted", action="store_true", - dest = "formatted", default=False, help="output in mirror -file format") + dest = "formatted", default=False, + help="output in mirror file format") parser.add_option("-n", dest="num", default=0, help="number of servers to output, 0 for all") parser.add_option("-v", "--verbose", action="store_true", dest="verbose", -- Show quoted text - default=False, help="be verbose in output") return parser
On 12/8/06, Dan McGee
That line with the description has to be on one line. This patch should fix that, a problem in a parser.add_option, and the Gmail inserted "Show quoted text".
Yeah, I apologize for that - I'm at work, so including this script was kinda done in the background 8) All good now.
participants (3)
-
Aaron Griffin
-
Dan McGee
-
kfs1@online.no