-
Notifications
You must be signed in to change notification settings - Fork 69
/
uninstall.py
40 lines (32 loc) · 1.15 KB
/
uninstall.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
from pythonz.basecommand import Command
from pythonz.define import PATH_PYTHONS
from pythonz.util import off, rm_r, Package, get_using_python_pkgname, is_installed
from pythonz.log import logger
class UninstallCommand(Command):
name = "uninstall"
usage = "%prog VERSION"
summary = "Uninstall the given version of python"
def __init__(self):
super(UninstallCommand, self).__init__()
self.parser.add_option(
"-t", "--type",
dest="type",
default="cpython",
help="Force installation of python even if tests fail."
)
def run_command(self, options, args):
if args:
# Uninstall pythons
for arg in args:
pkg = Package(arg, options.type)
pkgname = pkg.name
if not is_installed(pkg):
logger.error("`%s` is not installed." % pkgname)
continue
if get_using_python_pkgname() == pkgname:
off()
rm_r(os.path.join(PATH_PYTHONS, pkgname))
else:
self.parser.print_help()
UninstallCommand()