From d24cd2b3f770aceb17fafd8f274fa79a7072b547 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 12 Sep 2020 14:19:37 -0400 Subject: [PATCH] Rename --close-io-streams to --detach-stdio --- main-command/src/main/scala/sbt/BasicCommandStrings.scala | 2 +- main-command/src/main/scala/sbt/BasicKeys.scala | 4 ++-- .../main/scala/sbt/internal/client/NetworkClient.scala | 2 +- main/src/main/scala/sbt/Main.scala | 8 +++++--- main/src/main/scala/sbt/internal/CommandExchange.scala | 6 +++++- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/main-command/src/main/scala/sbt/BasicCommandStrings.scala b/main-command/src/main/scala/sbt/BasicCommandStrings.scala index a0d3a56eb..d7a310929 100644 --- a/main-command/src/main/scala/sbt/BasicCommandStrings.scala +++ b/main-command/src/main/scala/sbt/BasicCommandStrings.scala @@ -212,7 +212,7 @@ $AliasCommand name= "Provides an interactive prompt from which commands can be run on a server." def DashClient: String = "-client" def DashDashClient: String = "--client" - def CloseIOStreams: String = "--close-io-streams" + def DashDashDetachStdio: String = "--detach-stdio" def StashOnFailure: String = "sbtStashOnFailure" def PopOnFailure: String = "sbtPopOnFailure" diff --git a/main-command/src/main/scala/sbt/BasicKeys.scala b/main-command/src/main/scala/sbt/BasicKeys.scala index 749adb30e..90ead4fc8 100644 --- a/main-command/src/main/scala/sbt/BasicKeys.scala +++ b/main-command/src/main/scala/sbt/BasicKeys.scala @@ -129,8 +129,8 @@ object BasicKeys { "List of template resolver infos.", 1000 ) - private[sbt] val closeIOStreams = AttributeKey[Boolean]( - "close-io-streams", + private[sbt] val detachStdio = AttributeKey[Boolean]( + "detach-stdio", "Toggles wheter or not to close system in, out and error when the server starts.", 1000 ) diff --git a/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala b/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala index de0e1b99c..b961aab5d 100644 --- a/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala +++ b/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala @@ -299,7 +299,7 @@ class NetworkClient( ).mkString(",") val cmd = List(arguments.sbtScript) ++ arguments.sbtArguments ++ - List(BasicCommandStrings.CloseIOStreams, BasicCommandStrings.DashDashServer) + List(BasicCommandStrings.DashDashDetachStdio, BasicCommandStrings.DashDashServer) val processBuilder = new ProcessBuilder(cmd: _*) .directory(arguments.baseDirectory) diff --git a/main/src/main/scala/sbt/Main.scala b/main/src/main/scala/sbt/Main.scala index 83c8add70..6c7dfd5f7 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -86,14 +86,14 @@ private[sbt] object xMain { NetworkClient.run(dealiasBaseDirectory(configuration), args) Exit(0) } else { - val closeStreams = userCommands.exists(_ == BasicCommandStrings.CloseIOStreams) + val detachStdio = userCommands.exists(_ == BasicCommandStrings.DashDashDetachStdio) val state0 = StandardMain .initialState( dealiasBaseDirectory(configuration), Seq(defaults, early), runEarly(DefaultsCommand) :: runEarly(InitCommand) :: BootCommand :: Nil ) - .put(BasicKeys.closeIOStreams, closeStreams) + .put(BasicKeys.detachStdio, detachStdio) val state = bootServerSocket match { case Some(l) => state0.put(Keys.bootServerSocket, l) case _ => state0 @@ -230,7 +230,9 @@ object StandardMain { import BasicCommandStrings.isEarlyCommand val userCommands = - configuration.arguments.map(_.trim).filterNot(_ == BasicCommandStrings.CloseIOStreams) + configuration.arguments + .map(_.trim) + .filterNot(_ == BasicCommandStrings.DashDashDetachStdio) val (earlyCommands, normalCommands) = (preCommands ++ userCommands).partition(isEarlyCommand) val commands = (earlyCommands ++ normalCommands).toList map { x => Exec(x, None) diff --git a/main/src/main/scala/sbt/internal/CommandExchange.scala b/main/src/main/scala/sbt/internal/CommandExchange.scala index 58ec187fd..5c3520779 100644 --- a/main/src/main/scala/sbt/internal/CommandExchange.scala +++ b/main/src/main/scala/sbt/internal/CommandExchange.scala @@ -246,7 +246,11 @@ private[sbt] final class CommandExchange { firstInstance.set(false) } Terminal.setBootStreams(null, null) - if (s.get(BasicKeys.closeIOStreams).getOrElse(false)) Terminal.close() + + if (s.get(BasicKeys.detachStdio).getOrElse(false)) { + Terminal.close() + } + s.get(Keys.bootServerSocket).foreach(_.close()) } s.remove(Keys.bootServerSocket)