diff mbox series

[v2,2/2] ui/knotty: respect NO_COLOR & check for tty; rename print_hyperlink => format_hyperlink

Message ID 20240819143613.1380185-3-chris.laplante@agilent.com
State Accepted, archived
Commit 3f6de25a8a4d73dfba864aa6a543c5eafa9b7c7c
Headers show
Series ui/knotty: print log paths for failed tasks in summary | expand

Commit Message

chris.laplante@agilent.com Aug. 19, 2024, 2:36 p.m. UTC
From: Chris Laplante <chris.laplante@agilent.com>

---
 lib/bb/ui/knotty.py | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
index 5956ab177..3784c93ad 100644
--- a/lib/bb/ui/knotty.py
+++ b/lib/bb/ui/knotty.py
@@ -577,6 +577,8 @@  def main(server, eventHandler, params, tf = TerminalFilter):
     else:
         log_exec_tty = False
 
+    should_print_hyperlinks = sys.stdout.isatty() and os.environ.get('NO_COLOR', '') == ''
+
     helper = uihelper.BBUIHelper()
 
     # Look for the specially designated handlers which need to be passed to the
@@ -944,10 +946,12 @@  def main(server, eventHandler, params, tf = TerminalFilter):
     try:
         termfilter.clearFooter()
         summary = ""
-        def print_hyperlink(url, link_text):
-            start = f'\033]8;;{url}\033\\'
-            end = '\033]8;;\033\\'
-            return f'{start}{link_text}{end}'
+        def format_hyperlink(url, link_text):
+            if should_print_hyperlinks:
+                start = f'\033]8;;{url}\033\\'
+                end = '\033]8;;\033\\'
+                return f'{start}{link_text}{end}'
+            return link_text
 
         if taskfailures:
             summary += pluralise("\nSummary: %s task failed:",
@@ -955,7 +959,7 @@  def main(server, eventHandler, params, tf = TerminalFilter):
             for (failure, log_file) in taskfailures.items():
                 summary += "\n  %s" % failure
                 if log_file:
-                    hyperlink = print_hyperlink(f"file://{log_file}", log_file)
+                    hyperlink = format_hyperlink(f"file://{log_file}", log_file)
                     summary += "\n    log: {}".format(hyperlink)
         if warnings:
             summary += pluralise("\nSummary: There was %s WARNING message.",