summaryrefslogtreecommitdiff
path: root/bin/enalyze
blob: caa33622a2cd40c9cc613d39707c59ca9b86fa51 (plain)
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
#!/usr/bin/python
#
# Copyright 2010 Brian Dolbec <brian.dolbec@gmail.com>
# Copyright 2002-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2 or later

"""'enalyze' is a flexible utility for Gentoo linux which can display various
information about installed packages, such as the USE flags used and the
packages that use them.  It can also be used to help rebuild /etc/portage/package.*
files in the event of corruption, and possibly more.
"""

import sys
# This block ensures that ^C interrupts are handled quietly.
try:
    import signal

    def exithandler(signum, frame):
        signal.signal(signal.SIGINT, signal.SIG_IGN)
        signal.signal(signal.SIGTERM, signal.SIG_IGN)
        print()
        sys.exit(1)

    signal.signal(signal.SIGINT, exithandler)
    signal.signal(signal.SIGTERM, exithandler)
    signal.signal(signal.SIGPIPE, signal.SIG_DFL)

except KeyboardInterrupt:
    print()
    sys.exit(1)

from gentoolkit import enalyze, errors

try:
    enalyze.main()
except errors.GentoolkitException as err:
    if '--debug' in sys.argv:
        raise
    else:
        from gentoolkit import pprinter as pp
        sys.stderr.write(pp.error(str(err)))
        print()
        print("Add '--debug' to global options for traceback.")
        sys.exit(1)