mirror of
https://github.com/kennethreitz-archive/python-build.git
synced 2026-06-05 15:20:16 +00:00
Added py command.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
Reference in New Issue
Block a user