From 0e6387303246c6f074a34d2b8bd44676cc5af57c Mon Sep 17 00:00:00 2001 From: Ethan Atkins Date: Fri, 23 Oct 2020 08:23:33 -0700 Subject: [PATCH] Set color by default only if log format enabled I noticed that if you run `sbt -Dsbt.log.noformat=true` there are colors printed when using the latest sbt code. When running with that property set, the expectation is there are no colors. --- .../src/main/scala/sbt/internal/util/Terminal.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala b/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala index 0c336fa2d..35ce45363 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala @@ -314,7 +314,10 @@ object Terminal { private[this] def useColorDefault: Boolean = { // This approximates that both stdin and stdio are connected, // so by default color will be turned off for pipes and redirects. - props.map(_.color).orElse(isColorEnabledProp).getOrElse((hasConsole && !isDumbTerminal) || isCI) + props + .map(_.color) + .orElse(isColorEnabledProp) + .getOrElse((hasConsole && !isDumbTerminal && logFormatEnabled.getOrElse(true)) || isCI) } private[this] lazy val isColorEnabledProp: Option[Boolean] = sys.props.get("sbt.color").orElse(sys.props.get("sbt.colour")).flatMap(parseLogOption)