From 4cea09937cc81aab7b4ad5a01d95440d816780e9 Mon Sep 17 00:00:00 2001 From: Ethan Atkins Date: Thu, 17 Sep 2020 18:08:25 -0700 Subject: [PATCH] Set isSuccessEnabled in network channel consistently The thin client needs to do its own success reporting because in batch mode it's possible for the task to exit before success is logged by the server. If the server also prints success, there can be double printing. Unfortunately, the Prompt.Batch check is not reliable because MainLoop will change the prompt to Running during task evaluation. The interactive flag is set in the NetworkChannel when the client explicitly registers itself as an interactive session, so this should be more reliable. --- main/src/main/scala/sbt/internal/server/NetworkChannel.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/src/main/scala/sbt/internal/server/NetworkChannel.scala b/main/src/main/scala/sbt/internal/server/NetworkChannel.scala index a9771efe9..0d12be3f5 100644 --- a/main/src/main/scala/sbt/internal/server/NetworkChannel.scala +++ b/main/src/main/scala/sbt/internal/server/NetworkChannel.scala @@ -800,7 +800,7 @@ final class NetworkChannel( override def isAnsiSupported: Boolean = getProperty(_.isAnsiSupported, false).getOrElse(false) override def isEchoEnabled: Boolean = waitForPending(_.isEchoEnabled) override def isSuccessEnabled: Boolean = - prompt != Prompt.Batch || + interactive.get || StandardMain.exchange.withState(ContinuousCommands.isInWatch(_, NetworkChannel.this)) override lazy val isColorEnabled: Boolean = waitForPending(_.isColorEnabled) override lazy val isSupershellEnabled: Boolean = waitForPending(_.isSupershellEnabled)