diff options
Diffstat (limited to 'testenv/misc/colour_terminal.py')
-rw-r--r-- | testenv/misc/colour_terminal.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/testenv/misc/colour_terminal.py b/testenv/misc/colour_terminal.py new file mode 100644 index 0000000..bc549a2 --- /dev/null +++ b/testenv/misc/colour_terminal.py @@ -0,0 +1,46 @@ +from functools import partial +import platform +from os import getenv +import sys + +""" This module allows printing coloured output to the terminal when running a +Wget Test under certain conditions. +The output is coloured only on Linux systems. This is because coloured output +in the terminal on Windows requires too much effort for what is simply a +convenience. This might work on OSX terminals, but without a confirmation, it +remains unsupported. + +Another important aspect is that the coloured output is printed only if the +environment variable MAKE_CHECK is not set. This variable is set when running +the test suite through, `make check`. In that case, the output is not only +printed to the terminal but also copied to a log file where the ANSI escape +codes on;y add clutter. """ + + +T_COLORS = { + 'PURPLE': '\033[95m', + 'BLUE': '\033[94m', + 'GREEN': '\033[92m', + 'YELLOW': '\033[93m', + 'RED': '\033[91m', + 'ENDC': '\033[0m' +} + +system = True if platform.system() in ('Linux', 'Darwin') else False +check = False if getenv("MAKE_CHECK") == 'True' else True + + +def printer(color, string): + if sys.stdout.isatty() and system and check: + print(T_COLORS.get(color) + string + T_COLORS.get('ENDC')) + else: + print(string) + + +print_blue = partial(printer, 'BLUE') +print_red = partial(printer, 'RED') +print_green = partial(printer, 'GREEN') +print_purple = partial(printer, 'PURPLE') +print_yellow = partial(printer, 'YELLOW') + +# vim: set ts=8 sw=3 tw=80 et : |