diff options
| author | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-04-12 22:07:57 +0200 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-04-12 22:07:57 +0200 | 
| commit | 18122019972ca639ee3b581257e3a63ff7c8efeb (patch) | |
| tree | 52f7223e7c63f43322f3eee4722743e12190a19f /tools/patman/terminal.py | |
| parent | 90639feaa0d66a204f9d03a325ab14e2f97f6cbb (diff) | |
| parent | 785881f775252940185e10fbb2d5299c9ffa6bce (diff) | |
| download | olio-uboot-2014.01-18122019972ca639ee3b581257e3a63ff7c8efeb.tar.xz olio-uboot-2014.01-18122019972ca639ee3b581257e3a63ff7c8efeb.zip | |
Merge branch 'u-boot/master' into 'u-boot-arm/master'
Conflicts:
	drivers/video/exynos_fb.c
Diffstat (limited to 'tools/patman/terminal.py')
| -rw-r--r-- | tools/patman/terminal.py | 30 | 
1 files changed, 20 insertions, 10 deletions
| diff --git a/tools/patman/terminal.py b/tools/patman/terminal.py index 838c82845..337a2a43c 100644 --- a/tools/patman/terminal.py +++ b/tools/patman/terminal.py @@ -24,24 +24,32 @@  This module handles terminal interaction including ANSI color codes.  """ +import os +import sys + +# Selection of when we want our output to be colored +COLOR_IF_TERMINAL, COLOR_ALWAYS, COLOR_NEVER = range(3) +  class Color(object):    """Conditionally wraps text in ANSI color escape sequences."""    BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = range(8)    BOLD = -1 -  COLOR_START = '\033[1;%dm' +  BRIGHT_START = '\033[1;%dm' +  NORMAL_START = '\033[22;%dm'    BOLD_START = '\033[1m'    RESET = '\033[0m' -  def __init__(self, enabled=True): +  def __init__(self, colored=COLOR_IF_TERMINAL):      """Create a new Color object, optionally disabling color output.      Args:        enabled: True if color output should be enabled. If False then this          class will not add color codes at all.      """ -    self._enabled = enabled +    self._enabled = (colored == COLOR_ALWAYS or +        (colored == COLOR_IF_TERMINAL and os.isatty(sys.stdout.fileno()))) -  def Start(self, color): +  def Start(self, color, bright=True):      """Returns a start color code.      Args: @@ -52,7 +60,8 @@ class Color(object):        otherwise returns empty string      """      if self._enabled: -      return self.COLOR_START % (color + 30) +        base = self.BRIGHT_START if bright else self.NORMAL_START +        return base % (color + 30)      return ''    def Stop(self): @@ -63,10 +72,10 @@ class Color(object):        returns empty string      """      if self._enabled: -      return self.RESET +        return self.RESET      return '' -  def Color(self, color, text): +  def Color(self, color, text, bright=True):      """Returns text with conditionally added color escape sequences.      Keyword arguments: @@ -78,9 +87,10 @@ class Color(object):        returns text with color escape sequences based on the value of color.      """      if not self._enabled: -      return text +        return text      if color == self.BOLD: -      start = self.BOLD_START +        start = self.BOLD_START      else: -      start = self.COLOR_START % (color + 30) +        base = self.BRIGHT_START if bright else self.NORMAL_START +        start = base % (color + 30)      return start + text + self.RESET |