File: uninstall.py

package info (click to toggle)
eric 3.6.2-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 13,308 kB
  • ctags: 8,668
  • sloc: python: 52,713; sh: 265; makefile: 47
file content (120 lines) | stat: -rw-r--r-- 2,895 bytes parent folder | download | duplicates (2)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# -*- coding: utf-8 -*-

# Copyright (c) 2002-2005 Detlev Offenbach <detlev@die-offenbachs.de>
#
# This is the uninstall script for eric3.

"""
Uninstallation script for the eric3 IDE and all eric3 related tools.
"""

import sys
import os
import string
import shutil
import glob
import distutils.sysconfig

from eric3config import getConfig

# Define the globals.
progName = None

def usage(rcode = 2):
    """Display a usage message and exit.

    rcode is the return code passed back to the calling process.
    """
    global progName

    print "Usage:"
    print "    %s [-h]" % (progName)
    print "where:"
    print "    -h             display this help message"

    sys.exit(rcode)


def wrapperName(dname,wfile):
    """Create the platform specific name for the wrapper script.
    """
    if sys.platform == "win32":
        wname = dname + "\\" + wfile + ".bat"
    else:
        wname = dname + "/" + wfile

    return wname


def uninstallEric():
    """
    Uninstall the eric files.
    """
    # Remove the wrapper scripts
    rem_wnames = ["eric3", "eric3-unittest", "eric3-helpviewer",
        "eric3-doc", "eric3-qregexp", "eric3-re", "eric3-api",
        "eric3-uipreviewer", "eric3-trpreviewer",
        "qtunittest", "helpviewer"]
    for rem_wname in rem_wnames:
        rwname = wrapperName(getConfig('bindir'),rem_wname)
        if os.path.exists(rwname):
            os.remove(rwname)
    
    # Cleanup our config file
    for name in ['eric3config.py', 'eric3config.pyc']:
        e3cfile = os.path.join(getConfig('mdir'), name)
        if os.path.exists(e3cfile):
            os.remove(e3cfile)
        
    # Cleanup the install directories
    for name in ['ericExamplesDir', 'ericDocDir', 'ericDTDDir',
                 'ericIconDir', 'ericPixDir', 'ericDir', 'ericTemplatesDir',
                 'ericOthersDir']:
        try:
            shutil.rmtree(getConfig(name), 1)
        except:
            pass
    
    # Cleanup translations
    for name in glob.glob(os.path.join(getConfig('ericTranslationsDir'), 'eric3_*.qm')):
        try:
            os.remove(name)
        except:
            pass
    
def main(argv):
    """The main function of the script.

    argv is the list of command line arguments.
    """
    import getopt

    # Parse the command line.
    global progName
    progName = os.path.basename(argv[0])

    try:
        optlist, args = getopt.getopt(argv[1:],"hb:d:")
    except getopt.GetoptError:
        usage()

    global platBinDir

    for opt, arg in optlist:
        if opt == "-h":
            usage(0)
    
    uninstallEric()
    
    
if __name__ == "__main__":
    try:
        main(sys.argv)
    except SystemExit:
        raise
    except:
        print \
"""An internal error occured.  Please report all the output of the program,
including the following traceback, to eric-bugs@die-offenbachs.de.
"""
        raise