Skip to content

Commit 9a0c2bd

Browse files
author
Eric Fried
committed
Default LOG_COLOR based on interactive execution
Change I4a10a49db97d413349bcfceeb8c4164936fbcc40 added colorful PS4 via tput. However, if TERM is not set (as is the case when stacking noninteractively), tput errors with the following: tput: No value for $TERM and no -T specified ...twice for every log message, thus flooding the logs. This change set turns LOG_COLOR off by default for noninteractive execution. If LOG_COLOR is set to True when noninteractive (TERM is unset), obviate the above errors by passing tput a simple -T. Change-Id: I0f8ad82375cde463160bad5bd9918f1e4b19326d Closes-Bug: 1576405
1 parent db340e5 commit 9a0c2bd

1 file changed

Lines changed: 19 additions & 2 deletions

File tree

stackrc

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,29 @@ elif [[ -f $RC_DIR/.localrc.auto ]]; then
135135
source $RC_DIR/.localrc.auto
136136
fi
137137

138+
# Default for log coloring is based on interactive-or-not.
139+
# Baseline assumption is that non-interactive invocations are for CI,
140+
# where logs are to be presented as browsable text files; hence color
141+
# codes should be omitted.
142+
# Simply override LOG_COLOR if your environment is different.
143+
if [ -t 1 ]; then
144+
_LOG_COLOR_DEFAULT=True
145+
else
146+
_LOG_COLOR_DEFAULT=False
147+
fi
148+
138149
# Use color for logging output (only available if syslog is not used)
139-
LOG_COLOR=$(trueorfalse True LOG_COLOR)
150+
LOG_COLOR=$(trueorfalse $_LOG_COLOR_DEFAULT LOG_COLOR)
140151

141152
# Make tracing more educational
142153
if [[ "$LOG_COLOR" == "True" ]]; then
143-
export PS4='+\[$(tput setaf 242)\]$(short_source)\[$(tput sgr0)\] '
154+
# tput requires TERM or -T. If neither is present, use vt100, a
155+
# no-frills least common denominator supported everywhere.
156+
TPUT_T=
157+
if ! [ $TERM ]; then
158+
TPUT_T='-T vt100'
159+
fi
160+
export PS4='+\[$(tput '$TPUT_T' setaf 242)\]$(short_source)\[$(tput '$TPUT_T' sgr0)\] '
144161
else
145162
export PS4='+ $(short_source): '
146163
fi

0 commit comments

Comments
 (0)