A NetworkClient connects to a running sbt instance or starts a new instance if there isn't already one running. Once connected, it can send commands for sbt to run, it can send completions to sbt and print the completions to stdout so that a shell can consume the completions or it can enter an interactive sbt shell session in which it relays io bytes between sbt and the terminal.
Value parameters
- arguments
-
the arguments for the forked sbt server if the client needs to start it. It also contains the sbt command arguments to send to the server if any are present.
- console
-
a logging instance. This can use a ConsoleAppender or just simply print to a PrintStream.
- errorStream
-
the sink for messages that we always want to be printed. It is usually System.err but could be overridden in tests or set to a null OutputStream if the NetworkClient needs to be silent.
- inputStream
-
the InputStream from which the client reads bytes. It is not hardcoded to System.in so that a NetworkClient can be remotely controlled by a java process, which is useful in testing.
- printStream
-
the sink for standard out messages. It is typically System.out but in the case of completions, the bytes written to System.out are usually treated as completion results so we need to reroute standard out messages to System.err. It's also useful to override this in testing.
- useJNI
-
toggles whether or not to use the jni based implementations in org.scalasbt.ipcsocket. These are only available on 64 bit linux, mac and windows. Any other platform will need to fall back on jna.
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
trait AutoCloseableclass Objecttrait Matchableclass Any
- Self type