summaryrefslogtreecommitdiffstats
path: root/js/src/tests/lib/terminal_unix.py
blob: cdf799577690d5f58beab5ff316cc4d9e2675826 (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
import sys


class Terminal(object):
    COLOR = {"red": "31", "green": "32", "blue": "34", "gray": "37"}
    NORMAL_INTENSITY = "1"
    BRIGHT_INTENSITY = "2"
    ESCAPE = "\x1b["
    RESET = "0"
    SEPARATOR = ";"
    COLOR_CODE = "m"
    CLEAR_RIGHT_CODE = "K"

    @classmethod
    def set_color(cls, color):
        """
        color: str - color definition string
        """
        mod = Terminal.NORMAL_INTENSITY
        if color.startswith("bright"):
            mod = Terminal.BRIGHT_INTENSITY
            color = color[len("bright") :]
        color_code = Terminal.COLOR[color]

        sys.stdout.write(cls.ESCAPE + color_code + cls.SEPARATOR + mod + cls.COLOR_CODE)

    @classmethod
    def reset_color(cls):
        sys.stdout.write(cls.ESCAPE + cls.RESET + cls.COLOR_CODE)

    @classmethod
    def clear_right(cls):
        sys.stdout.write(cls.ESCAPE + cls.CLEAR_RIGHT_CODE)