scons: avoid interactive access in non-tty
authorEarl Ou <shunhsingou@google.com>
Mon, 5 Oct 2020 07:29:51 +0000 (15:29 +0800)
committerEarl Ou <shunhsingou@google.com>
Tue, 6 Oct 2020 00:25:03 +0000 (00:25 +0000)
We saw some strange behavior when building scons without an interactive
TTY. This seems be caused by the control signal set from
curses.initscr() and endwin(). To avoid issues, we should avoid those
operation when running in non interactive situation.

Change-Id: I9cf8e48a786d47d567ba193f0b069f638e8db647
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35595
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
site_scons/gem5_scons/__init__.py

index 169e0fe0641a54b7d051f48585249a993c16d149..33231127cf9ce132242c8edfc5ee9291fb67a5a6 100644 (file)
@@ -41,6 +41,7 @@
 from __future__ import print_function
 
 import os
+import sys
 import textwrap
 
 from gem5_scons.util import get_termcap
@@ -131,6 +132,10 @@ class Transform(object):
 # The width warning and error messages should be wrapped at.
 text_width = None
 
+# If stdout is not attached to a terminal, default to 80 columns.
+if not sys.stdout.isatty():
+    text_width = 80
+
 # This should work in python 3.3 and above.
 if text_width is None:
     try: