root / qa / qa_logging.py @ bfca72bc
History | View | Annotate | Download (1.8 kB)
1 | 6d96ede4 | Hrvoje Ribicic | #
|
---|---|---|---|
2 | 6d96ede4 | Hrvoje Ribicic | #
|
3 | 6d96ede4 | Hrvoje Ribicic | |
4 | 6d96ede4 | Hrvoje Ribicic | # Copyright (C) 2014 Google Inc.
|
5 | 6d96ede4 | Hrvoje Ribicic | #
|
6 | 6d96ede4 | Hrvoje Ribicic | # This program is free software; you can redistribute it and/or modify
|
7 | 6d96ede4 | Hrvoje Ribicic | # it under the terms of the GNU General Public License as published by
|
8 | 6d96ede4 | Hrvoje Ribicic | # the Free Software Foundation; either version 2 of the License, or
|
9 | 6d96ede4 | Hrvoje Ribicic | # (at your option) any later version.
|
10 | 6d96ede4 | Hrvoje Ribicic | #
|
11 | 6d96ede4 | Hrvoje Ribicic | # This program is distributed in the hope that it will be useful, but
|
12 | 6d96ede4 | Hrvoje Ribicic | # WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 | 6d96ede4 | Hrvoje Ribicic | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14 | 6d96ede4 | Hrvoje Ribicic | # General Public License for more details.
|
15 | 6d96ede4 | Hrvoje Ribicic | #
|
16 | 6d96ede4 | Hrvoje Ribicic | # You should have received a copy of the GNU General Public License
|
17 | 6d96ede4 | Hrvoje Ribicic | # along with this program; if not, write to the Free Software
|
18 | 6d96ede4 | Hrvoje Ribicic | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
19 | 6d96ede4 | Hrvoje Ribicic | # 02110-1301, USA.
|
20 | 6d96ede4 | Hrvoje Ribicic | |
21 | 6d96ede4 | Hrvoje Ribicic | """ Handles the logging of messages with appropriate coloring.
|
22 | 6d96ede4 | Hrvoje Ribicic |
|
23 | 6d96ede4 | Hrvoje Ribicic | """
|
24 | 6d96ede4 | Hrvoje Ribicic | |
25 | 6d96ede4 | Hrvoje Ribicic | import sys |
26 | 6d96ede4 | Hrvoje Ribicic | |
27 | 6d96ede4 | Hrvoje Ribicic | |
28 | 6d96ede4 | Hrvoje Ribicic | _INFO_SEQ = None
|
29 | 6d96ede4 | Hrvoje Ribicic | _WARNING_SEQ = None
|
30 | 6d96ede4 | Hrvoje Ribicic | _ERROR_SEQ = None
|
31 | 6d96ede4 | Hrvoje Ribicic | _RESET_SEQ = None
|
32 | 6d96ede4 | Hrvoje Ribicic | |
33 | 6d96ede4 | Hrvoje Ribicic | |
34 | 6d96ede4 | Hrvoje Ribicic | def _SetupColours(): |
35 | 6d96ede4 | Hrvoje Ribicic | """Initializes the colour constants.
|
36 | 6d96ede4 | Hrvoje Ribicic |
|
37 | 6d96ede4 | Hrvoje Ribicic | """
|
38 | 6d96ede4 | Hrvoje Ribicic | # pylint: disable=W0603
|
39 | 6d96ede4 | Hrvoje Ribicic | # due to global usage
|
40 | 6d96ede4 | Hrvoje Ribicic | global _INFO_SEQ, _WARNING_SEQ, _ERROR_SEQ, _RESET_SEQ
|
41 | 6d96ede4 | Hrvoje Ribicic | |
42 | 6d96ede4 | Hrvoje Ribicic | # Don't use colours if stdout isn't a terminal
|
43 | 6d96ede4 | Hrvoje Ribicic | if not sys.stdout.isatty(): |
44 | 6d96ede4 | Hrvoje Ribicic | return
|
45 | 6d96ede4 | Hrvoje Ribicic | |
46 | 6d96ede4 | Hrvoje Ribicic | try:
|
47 | 6d96ede4 | Hrvoje Ribicic | import curses |
48 | 6d96ede4 | Hrvoje Ribicic | except ImportError: |
49 | 6d96ede4 | Hrvoje Ribicic | # Don't use colours if curses module can't be imported
|
50 | 6d96ede4 | Hrvoje Ribicic | return
|
51 | 6d96ede4 | Hrvoje Ribicic | |
52 | 6d96ede4 | Hrvoje Ribicic | curses.setupterm() |
53 | 6d96ede4 | Hrvoje Ribicic | |
54 | 6d96ede4 | Hrvoje Ribicic | _RESET_SEQ = curses.tigetstr("op")
|
55 | 6d96ede4 | Hrvoje Ribicic | |
56 | 6d96ede4 | Hrvoje Ribicic | setaf = curses.tigetstr("setaf")
|
57 | 6d96ede4 | Hrvoje Ribicic | _INFO_SEQ = curses.tparm(setaf, curses.COLOR_GREEN) |
58 | 6d96ede4 | Hrvoje Ribicic | _WARNING_SEQ = curses.tparm(setaf, curses.COLOR_YELLOW) |
59 | 6d96ede4 | Hrvoje Ribicic | _ERROR_SEQ = curses.tparm(setaf, curses.COLOR_RED) |
60 | 6d96ede4 | Hrvoje Ribicic | |
61 | 6d96ede4 | Hrvoje Ribicic | |
62 | 6d96ede4 | Hrvoje Ribicic | _SetupColours() |
63 | 6d96ede4 | Hrvoje Ribicic | |
64 | 6d96ede4 | Hrvoje Ribicic | |
65 | 6d96ede4 | Hrvoje Ribicic | def _FormatWithColor(text, seq): |
66 | 6d96ede4 | Hrvoje Ribicic | if not seq: |
67 | 6d96ede4 | Hrvoje Ribicic | return text
|
68 | 6d96ede4 | Hrvoje Ribicic | return "%s%s%s" % (seq, text, _RESET_SEQ) |
69 | 6d96ede4 | Hrvoje Ribicic | |
70 | 6d96ede4 | Hrvoje Ribicic | |
71 | 6d96ede4 | Hrvoje Ribicic | FormatWarning = lambda text: _FormatWithColor(text, _WARNING_SEQ)
|
72 | 6d96ede4 | Hrvoje Ribicic | FormatError = lambda text: _FormatWithColor(text, _ERROR_SEQ)
|
73 | 6d96ede4 | Hrvoje Ribicic | FormatInfo = lambda text: _FormatWithColor(text, _INFO_SEQ) |