Added py command.

This commit is contained in:
utahta
2010-12-07 15:51:11 +09:00
parent c0d749d7dc
commit 2b19c65dce
4 changed files with 74 additions and 11 deletions
+2 -2
View File
@@ -9,7 +9,7 @@ from pythonbrew.log import logger
class ListCommand(Command):
name = "list"
usage = "%prog [VERSION]"
summary = "List the installed versions of Python"
summary = "List the installed all pythons"
def __init__(self):
super(ListCommand, self).__init__()
@@ -37,7 +37,7 @@ class ListCommand(Command):
def installed(self, options, args):
logger.info('# installed pythons')
cur = get_current_python_path()
for d in sorted(os.listdir('%s/' % PATH_PYTHONS)):
for d in sorted(os.listdir(PATH_PYTHONS)):
if cur == os.path.join(PATH_PYTHONS, d, 'bin','python'):
logger.info('%s (*)' % d)
cur = None
+51
View File
@@ -0,0 +1,51 @@
import os
import sys
from pythonbrew.basecommand import Command
from pythonbrew.define import PATH_PYTHONS
from pythonbrew.util import Package
from pythonbrew.log import logger
from subprocess import PIPE, Popen
class PyCommand(Command):
name = "py"
usage = "%prog PYTHON_FILE"
summary = "Runs a named python file against specified and/or all pythons"
def __init__(self):
super(PyCommand, self).__init__()
self.parser.add_option(
"-p", "--python",
dest="pythons",
action="append",
default=[],
help="Using specified python versions."
)
self.parser.add_option(
"-v", "--verbose",
dest="verbose",
action="store_true",
default=False,
help="Show python version."
)
def run_command(self, options, args):
if not args:
logger.info("Unrecognized command line argument: argument not found.")
sys.exit(1)
python_file = args[0]
pythons = self._get_pythons(options.pythons)
for d in pythons:
path = os.path.join(PATH_PYTHONS, d, 'bin', 'python')
if os.path.isfile(path) and os.access(path, os.X_OK):
if options.verbose:
logger.info('*** %s ***' % d)
p = Popen("%s %s" % (path, python_file), shell=True)
p.wait()
def _get_pythons(self, _pythons):
pythons = [Package(p).name for p in _pythons]
return [d for d in sorted(os.listdir(PATH_PYTHONS))
if not pythons or d in pythons]
PyCommand()