diff mbox series

lib/bb: support NO_COLOR

Message ID 20240312010849.943016-1-pab@pabigot.com
State Accepted, archived
Commit d9986c54cd3d67ed1f7cb636b17696c8d0d4db85
Headers show
Series lib/bb: support NO_COLOR | expand

Commit Message

Peter A. Bigot March 12, 2024, 1:08 a.m. UTC
Red text on a black background can make it difficult for people with
visual impairments to read the text of error messages.  Respect the
presence of a non-empty NO_COLOR environment variable as an indication
the user doesn't want colorization to be automatically enabled.

See: https://no-color.org/
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
 lib/bb/msg.py       | 2 +-
 lib/bb/ui/knotty.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/lib/bb/msg.py b/lib/bb/msg.py
index 93575d89..3e18596f 100644
--- a/lib/bb/msg.py
+++ b/lib/bb/msg.py
@@ -230,7 +230,7 @@  def logger_create(name, output=sys.stderr, level=logging.INFO, preserve_handlers
     console = logging.StreamHandler(output)
     console.addFilter(bb.msg.LogFilterShowOnce())
     format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
-    if color == 'always' or (color == 'auto' and output.isatty()):
+    if color == 'always' or (color == 'auto' and output.isatty() and os.environ.get('NO_COLOR', '') == ''):
         format.enable_color()
     console.setFormatter(format)
     if preserve_handlers:
diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
index 5a97d040..f86999bb 100644
--- a/lib/bb/ui/knotty.py
+++ b/lib/bb/ui/knotty.py
@@ -179,7 +179,7 @@  class TerminalFilter(object):
             new[3] = new[3] & ~termios.ECHO
             termios.tcsetattr(fd, termios.TCSADRAIN, new)
             curses.setupterm()
-            if curses.tigetnum("colors") > 2:
+            if curses.tigetnum("colors") > 2 and os.environ.get('NO_COLOR', '') == '':
                 for h in handlers:
                     try:
                         h.formatter.enable_color()