<reponame>igroff/pythonbrew
import os
from pythonbrew.basecommand import Command
from pythonbrew.define import PATH_PYTHONS, PATH_BIN, PATH_VENVS
from pythonbrew.util import off, rm_r, Package, get_using_python_pkgname, unlink,\
    is_installed
from pythonbrew.log import logger

class UninstallCommand(Command):
    name = "uninstall"
    usage = "%prog VERSION"
    summary = "Uninstall the given version of python"
    
    def run_command(self, options, args):
        if args:
            # Uninstall pythons
            for arg in args:
                pkg = Package(arg)
                pkgname = pkg.name
                pkgpath = os.path.join(PATH_PYTHONS, pkgname)
                venvpath = os.path.join(PATH_VENVS, pkgname)
                if not is_installed(pkgname):
                    logger.error("`%s` is not installed." % pkgname)
                    continue
                if get_using_python_pkgname() == pkgname:
                    off()
                for d in os.listdir(PATH_BIN):
                    # remove symlink
                    path = os.path.join(PATH_BIN, d)
                    if os.path.islink(path):
                        basename = os.path.basename(os.path.realpath(path))
                        tgtpath = os.path.join(pkgpath, 'bin', basename)
                        if os.path.isfile(tgtpath) and os.path.samefile(path, tgtpath):
                            unlink(path)
                rm_r(pkgpath)
                rm_r(venvpath)
        else:
            self.parser.print_help()

UninstallCommand()

import os
from pythonbrew.basecommand import Command
from pythonbrew.define import PATH_PYTHONS, PATH_BIN, PATH_VENVS
from pythonbrew.util import off, rm_r, Package, get_using_python_pkgname, unlink,\
    is_installed
from pythonbrew.log import logger

class UninstallCommand(Command):
    name = "uninstall"
    usage = "%prog VERSION"
    summary = "Uninstall the given version of python"
    
    def run_command(self, options, args):
        if args:
            # Uninstall pythons
            for arg in args:
                pkg = Package(arg)
                pkgname = pkg.name
                pkgpath = os.path.join(PATH_PYTHONS, pkgname)
                venvpath = os.path.join(PATH_VENVS, pkgname)
                if not is_installed(pkgname):
                    logger.error("`%s` is not installed." % pkgname)
                    continue
                if get_using_python_pkgname() == pkgname:
                    off()
                for d in os.listdir(PATH_BIN):
                    # remove symlink
                    path = os.path.join(PATH_BIN, d)
                    if os.path.islink(path):
                        basename = os.path.basename(os.path.realpath(path))
                        tgtpath = os.path.join(pkgpath, 'bin', basename)
                        if os.path.isfile(tgtpath) and os.path.samefile(path, tgtpath):
                            unlink(path)
                rm_r(pkgpath)
                rm_r(venvpath)
        else:
            self.parser.print_help()

UninstallCommand()
# Uninstall pythons # remove symlink