Bug fix. Added list option (--all-versions).

This commit is contained in:
utahta
2010-11-15 02:40:31 +09:00
parent c7aeaa9fcd
commit 828f488865
3 changed files with 28 additions and 13 deletions
+18 -9
View File
@@ -1,6 +1,6 @@
import re
from pythonbrew.basecommand import Command
from pythonbrew.define import PYTHON_PACKAGE_URL
from pythonbrew.define import PYTHON_PACKAGE_URL, LATEST_VERSIONS_OF_PYTHON
from pythonbrew.util import Package
from pythonbrew.log import logger
@@ -8,27 +8,36 @@ class ListCommand(Command):
name = "list"
usage = "%prog [VERSION]"
summary = "List the available install version of python"
def __init__(self):
super(ListCommand, self).__init__()
self.parser.add_option(
"--all-versions",
dest="all_versions",
action="store_true",
default=False,
help="All versions of Python are visible."
)
def run_command(self, options, args):
if args:
pkg = Package(args[0])
_re = re.compile(r"%s" % pkg.name)
pkgs = []
for pkgname in self._get_packages_name():
for pkgname in self._get_packages_name(options):
if _re.match(pkgname):
pkgs.append(pkgname)
if pkgs:
logger.info("Pythons:")
for pkgname in pkgs:
logger.info(" %s" % pkgname)
logger.info("%s" % pkgname)
else:
print "Package not found. `%s`" % pkg.name
else:
logger.info("Pythons:")
for pkgname in self._get_packages_name():
logger.info(" %s" % pkgname)
for pkgname in self._get_packages_name(options):
logger.info("%s" % pkgname)
def _get_packages_name(self):
return ["Python-%s" % version for version in sorted(PYTHON_PACKAGE_URL.keys())]
def _get_packages_name(self, options):
return ["Python-%s" % version for version in sorted(PYTHON_PACKAGE_URL.keys())
if(options.all_versions or (not options.all_versions and version in LATEST_VERSIONS_OF_PYTHON))]
ListCommand()
+6
View File
@@ -34,6 +34,7 @@ DISTRIBUTE_SETUP_DLSITE = "http://python-distribute.org/distribute_setup.py"
PYTHONBREW_UPDATE_URL = {
"head": "http://github.com/utahta/pythonbrew/tarball/master",
"0.5": "https://github.com/utahta/pythonbrew/tarball/0.5",
"0.6": "https://github.com/utahta/pythonbrew/tarball/0.6",
}
PYTHONBREW_DIRNAME = "utahta-pythonbrew"
@@ -60,3 +61,8 @@ PYTHON_PACKAGE_URL["3.2a1"] = "http://www.python.org/ftp/python/3.2/Python-3.2a1
PYTHON_PACKAGE_URL["3.2a2"] = "http://www.python.org/ftp/python/3.2/Python-3.2a2.tgz"
PYTHON_PACKAGE_URL["3.2a3"] = "http://www.python.org/ftp/python/3.2/Python-3.2a3.tgz"
LATEST_VERSIONS_OF_PYTHON = ['1.5.2', '1.6.1',
'2.0.1', '2.1.3', '2.2.3', '2.3.7', '2.4.6', '2.5.5', '2.6.6', '2.7',
'3.0.1', '3.1.2', '3.2a3']
+4 -4
View File
@@ -9,12 +9,12 @@ def get_response_from_url(url):
try:
resp = urllib2.urlopen(url)
except urllib2.HTTPError, e:
logger.error("HTTP error %s while getting %s" % (e.code))
raise
logger.error("HTTP error %s while getting %s" % (e.code, url))
sys.exit(1)
except IOError, e:
# Typically an FTP error
logger.error("Error %s while getting %s" % (e))
raise
logger.error("Error %s while getting %s" % (e, url))
sys.exit(1)
return resp
class Downloader(object):