scons: avoid interactive access in non-tty

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>
diff --git a/site_scons/gem5_scons/__init__.py b/site_scons/gem5_scons/__init__.py
index 169e0fe..3323112 100644
--- a/site_scons/gem5_scons/__init__.py
+++ b/site_scons/gem5_scons/__init__.py
@@ -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 @@
 # 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: