diff --git a/src/pvecontrol/sanitycheck/checks.py b/src/pvecontrol/sanitycheck/checks.py index 3b6cd1d..1fbe778 100644 --- a/src/pvecontrol/sanitycheck/checks.py +++ b/src/pvecontrol/sanitycheck/checks.py @@ -1,8 +1,7 @@ from abc import ABC, abstractmethod -from curses import has_colors as terminal_support_colors from enum import Enum -from pvecontrol.utils import fonts, teminal_support_utf_8 +from pvecontrol.utils import fonts, teminal_support_utf_8, terminal_support_colors class CheckType(Enum): HA = 'HIGH_AVAILABILITY' diff --git a/src/pvecontrol/utils.py b/src/pvecontrol/utils.py index f40f17d..a1abb54 100644 --- a/src/pvecontrol/utils.py +++ b/src/pvecontrol/utils.py @@ -2,7 +2,7 @@ import time import sys import re -import subprocess +import curses from prettytable import PrettyTable from collections import OrderedDict @@ -18,6 +18,23 @@ class fonts: UNDERLINE = '\033[4m' END = '\033[0m' +def terminal_support_colors(): + try: + _stdscr = curses.initscr() + curses.start_color() + if curses.has_colors(): + _num_colors = curses.color_pair(1) + if curses.COLORS > 0: + return True + else: + return False + else: + return False + except Exception as e: + return False + finally: + curses.endwin() + def teminal_support_utf_8(): return sys.stdout.encoding.lower() == 'utf-8'