Revision 1490a90c
b/qa/colors.py | ||
---|---|---|
22 | 22 |
"""Script for adding colorized output to Ganeti. |
23 | 23 |
|
24 | 24 |
Colors are enabled only if the standard output is a proper terminal. |
25 |
(Or call check_for_colors() to make a thorough test using "tput".) |
|
25 | 26 |
|
26 | 27 |
""" |
27 | 28 |
|
28 | 29 |
import os |
30 |
import subprocess |
|
29 | 31 |
import sys |
30 | 32 |
|
31 | 33 |
DEFAULT = '\033[0m' |
... | ... | |
47 | 49 |
return color + line + DEFAULT |
48 | 50 |
else: |
49 | 51 |
return line |
52 |
|
|
53 |
|
|
54 |
def check_for_colors(): |
|
55 |
"""Tries to call 'tput' to properly determine, if the terminal has colors. |
|
56 |
|
|
57 |
This functions is meant to be run once at the program's start. If not |
|
58 |
invoked, colors are enabled iff standard output is a terminal. |
|
59 |
""" |
|
60 |
colors = 0 |
|
61 |
if sys.stdout.isatty(): |
|
62 |
try: |
|
63 |
p = subprocess.Popen(["tput", "colors"], stdout=subprocess.PIPE) |
|
64 |
output = p.communicate()[0] |
|
65 |
if p.returncode == 0: |
|
66 |
colors = int(output) |
|
67 |
except (OSError, ValueError): |
|
68 |
pass |
|
69 |
global _enabled |
|
70 |
_enabled = (colors >= 2) |
b/qa/ganeti-qa.py | ||
---|---|---|
953 | 953 |
"""Main program. |
954 | 954 |
|
955 | 955 |
""" |
956 |
colors.check_for_colors() |
|
957 |
|
|
956 | 958 |
parser = optparse.OptionParser(usage="%prog [options] <config-file>") |
957 | 959 |
parser.add_option("--yes-do-it", dest="yes_do_it", |
958 | 960 |
action="store_true", |
Also available in: Unified diff