From fb9aeb5392762c6ea3aa67096a18e163e63ec6ea Mon Sep 17 00:00:00 2001 From: Frak Date: Sat, 9 Sep 2023 14:18:39 -0400 Subject: [PATCH] Add colors for OK and FAIL cases --- kconfig_hardened_check/engine.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/kconfig_hardened_check/engine.py b/kconfig_hardened_check/engine.py index 2e86ef3..99ce065 100644 --- a/kconfig_hardened_check/engine.py +++ b/kconfig_hardened_check/engine.py @@ -11,6 +11,22 @@ This module is the engine of checks. # pylint: disable=missing-class-docstring,missing-function-docstring # pylint: disable=line-too-long,invalid-name,too-many-branches +GREEN_COLOR = '\x1b[32m' +RED_COLOR = '\x1b[31m' +COLOR_END = '\x1b[0m' + +def colorize_result(input): + + if input.startswith('OK'): + color = GREEN_COLOR + elif input.startswith('FAIL:'): + color = RED_COLOR + else: + assert(False), f'unexpected result "{input}"' + colored_result = f'{color}{input}{COLOR_END}' + + print(f'| {colored_result}', end='') + class OptCheck: def __init__(self, reason, decision, name, expected): @@ -78,7 +94,7 @@ class OptCheck: def table_print(self, _mode, with_results): print(f'{self.name:<40}|{self.type:^7}|{self.expected:^12}|{self.decision:^10}|{self.reason:^18}', end='') if with_results: - print(f'| {self.result}', end='') + colorize_result(self.result) def json_dump(self, with_results): dump = [self.name, self.type, self.expected, self.decision, self.reason] @@ -137,7 +153,7 @@ class VersionCheck: ver_req = f'kernel version >= {self.ver_expected[0]}.{self.ver_expected[1]}' print(f'{ver_req:<91}', end='') if with_results: - print(f'| {self.result}', end='') + colorize_result(self.result) class ComplexOptCheck: @@ -167,7 +183,8 @@ class ComplexOptCheck: if mode == 'verbose': print(f' {"<<< " + self.__class__.__name__ + " >>>":87}', end='') if with_results: - print(f'| {self.result}', end='') + colorize_result(self.result) + for o in self.opts: print() o.table_print(mode, with_results) @@ -175,7 +192,10 @@ class ComplexOptCheck: o = self.opts[0] o.table_print(mode, False) if with_results: - print(f'| {self.result}', end='') + colorize_result(self.result) + + + def json_dump(self, with_results): dump = self.opts[0].json_dump(False) -- 2.31.1