Files
python-build/pythonbrew/commands/switch.py
T
2010-11-20 07:38:22 +09:00

39 lines
1.4 KiB
Python

import os
import sys
from pythonbrew.basecommand import Command
from pythonbrew.define import PATH_PYTHONS, PATH_BIN
from pythonbrew.util import off, symlink, Package
from pythonbrew.log import logger
class SwitchCommand(Command):
name = "switch"
usage = "%prog VERSION"
summary = "Switch to the given version"
def run_command(self, options, args):
if not args:
logger.info("Unrecognized command line argument: argument not found.")
sys.exit(1)
pkg = Package(args[0])
pkgname = pkg.name
pkgdir = os.path.join(PATH_PYTHONS, pkgname)
if not os.path.isdir(pkgdir):
logger.info("`%s` is not installed." % pkgname)
sys.exit(1)
self._switch_dir(pkgdir)
logger.info("Switched to %s" % pkgname)
def _switch_dir(self, pkgdir):
off()
symlink(pkgdir, "%s/current" % PATH_PYTHONS)
# I want better code...
current_bin = os.path.join(PATH_PYTHONS,'current','bin')
if not os.path.isfile(os.path.join(current_bin,"python")):
if os.path.isfile(os.path.join(current_bin,"python3")):
symlink(os.path.realpath("%s/python3" % current_bin), os.path.join(PATH_BIN,"python"))
elif os.path.isfile(os.path.join(current_bin,"python3.0")):
symlink(os.path.realpath("%s/python3.0" % current_bin), os.path.join(PATH_BIN,"python"))
SwitchCommand()