This object contains factories for scala.sys.process.ProcessIO, which can be
used to control the I/O of a scala.sys.process.Process when a
scala.sys.process.ProcessBuilder is started with the run command.
It also contains some helper methods that can be used to in the creation of
ProcessIO .
It is used by other classes in the package in the implementation of various
features, but can also be used by client code.
def apply(withIn: Boolean, output: (String) ⇒ Unit, log: Option[ProcessLogger]): ProcessIO
Creates a ProcessIO from a function String => Unit . It can attach the
process input to stdin, and it will either send the error stream to stderr, or
to a ProcessLogger .
For example, the ProcessIO created below will print all normal output while
ignoring all error output. No input will be provided.
withIn
True if the process input should be attached to stdin.
output
A function that will be called with the process output.
log
An optional ProcessLogger to which the output should be sent. If None ,
output will be sent to stderr.
Creates a ProcessIO that appends its output to a StringBuffer . It can
attach the process input to stdin, and it will either send the error stream to
stderr, or to a ProcessLogger .
For example, the ProcessIO created by the function below will store the normal
output on the buffer provided, and print all error on stderr. The input will be
read from stdin.
withIn
True if the process input should be attached to stdin.
buffer
A StringBuffer which will receive the process normal output.
log
An optional ProcessLogger to which the output should be sent. If None ,
output will be sent to stderr.
returns
A ProcessIO with the characteristics above.
(defined at scala.sys.process.BasicIO)
def close(c: Closeable): Unit
Closes a Closeable without throwing an exception
(defined at scala.sys.process.BasicIO)
def connectToIn(o: OutputStream): Unit
Copy contents of stdin to the OutputStream .
(defined at scala.sys.process.BasicIO)
def getErr(log: Option[ProcessLogger]): (InputStream) ⇒ Unit
Returns a function InputStream => Unit given an optional ProcessLogger . If
no logger is passed, the function will send the output to stderr. This function
can be used to create a scala.sys.process.ProcessIO.
log
An optional ProcessLogger to which the contents of the InputStream will
be sent.
returns
A function InputStream => Unit (used by scala.sys.process.ProcessIO) which
will send the data to either the provided ProcessLogger or, if None , to
stderr.
(defined at scala.sys.process.BasicIO)
def input(connect: Boolean): (OutputStream) ⇒ Unit
Returns a function OutputStream => Unit that either reads the content from
stdin or does nothing. This function can be used by scala.sys.process.ProcessIO.
(defined at scala.sys.process.BasicIO)
def processFully(processLine: (String) ⇒ Unit): (InputStream) ⇒ Unit
Returns a function InputStream => Unit that will call the passed function with
all data read. This function can be used to create a scala.sys.process.ProcessIO.
The processLine function will be called with each line read, and Newline
will be appended after each line.
processLine
A function that will be called with all data read from the stream.
returns
A function InputStream => Unit (used by scala.sys.process.ProcessIO which
will call processLine with all data read from the stream.
(defined at scala.sys.process.BasicIO)
def processFully(buffer: Appendable): (InputStream) ⇒ Unit
Returns a function InputStream => Unit that appends all data read to the
provided Appendable . This function can be used to create a
scala.sys.process.ProcessIO. The buffer will be appended line by line.
buffer
An Appendable such as StringBuilder or StringBuffer .
returns
A function InputStream => Unit (used by scala.sys.process.ProcessIO which
will append all data read from the stream to the buffer.
(defined at scala.sys.process.BasicIO)
def processLinesFully(processLine: (String) ⇒ Unit)(readLine: () ⇒ String): Unit
Calls processLine with the result of readLine until the latter returns
null or the current thread is interrupted.