diff --git a/main-command/src/main/scala/sbt/BasicCommandStrings.scala b/main-command/src/main/scala/sbt/BasicCommandStrings.scala index eef42b3cc..a0d3a56eb 100644 --- a/main-command/src/main/scala/sbt/BasicCommandStrings.scala +++ b/main-command/src/main/scala/sbt/BasicCommandStrings.scala @@ -200,6 +200,10 @@ $AliasCommand name= Starts the server if it has not been started. This is intended to be used with -Dsbt.server.autostart=false.""" + def ServerDetailed: String = + "--server always runs sbt in not-daemon mode." + def DashDashServer: String = "--server" + def OldShell: String = "oldshell" def OldShellDetailed = "Provides an interactive prompt from which commands can be run." 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 0250dfe86..de0e1b99c 100644 --- a/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala +++ b/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala @@ -298,7 +298,8 @@ class NetworkClient( term.isSupershellEnabled ).mkString(",") - val cmd = arguments.sbtScript +: arguments.sbtArguments :+ BasicCommandStrings.CloseIOStreams + val cmd = List(arguments.sbtScript) ++ arguments.sbtArguments ++ + List(BasicCommandStrings.CloseIOStreams, 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 e3aacd778..83c8add70 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -59,7 +59,7 @@ private[sbt] object xMain { } private[sbt] def run(configuration: xsbti.AppConfiguration): xsbti.MainResult = { try { - import BasicCommandStrings.{ DashClient, DashDashClient, runEarly } + import BasicCommandStrings.{ DashClient, DashDashClient, DashDashServer, runEarly } import BasicCommands.early import BuiltinCommands.defaults import sbt.internal.CommandStrings.{ BootCommand, DefaultsCommand, InitCommand } @@ -71,7 +71,9 @@ private[sbt] object xMain { } // if we detect -Dsbt.client=true or -client, run thin client. val clientModByEnv = SysProp.client - val userCommands = configuration.arguments.map(_.trim) + val userCommands = configuration.arguments + .map(_.trim) + .filterNot(_ == DashDashServer) val isClient: String => Boolean = cmd => (cmd == DashClient) || (cmd == DashDashClient) val isBsp: String => Boolean = cmd => (cmd == "-bsp") || (cmd == "--bsp") if (userCommands.exists(isBsp)) {