ProcessGroupImplIO

case class ProcessGroupImplIO[O](firstProcess: UnboundEProcess[ProxStream[Byte]], innerProcesses: List[UnboundIEProcess[ProxStream[Byte]]], lastProcess: UnboundIEProcess[O], originalProcesses: List[Process[Unit, Unit]]) extends ProcessGroup[O, Unit] with RedirectableErrors[[_] =>> ProcessGroupImplIOE[O, _$9]]

Process group with bound input and output streams

trait Serializable
trait Product
trait Equals
trait ProcessGroup[O, Unit]
class Object
trait Matchable
class Any

Type members

Types

override type Self = ProcessGroupImplIO[O]

Value members

Concrete methods

override def connectErrors[R <: GroupErrorRedirection, OR <: OutputRedirection, E](target: R)(implicit groupErrorRedirectionType: Aux[R, OR, E], outputRedirectionType: Aux[OR, E]): ProcessGroupImplIOE[O, E]
Definition Classes
def map(f: Mapper[O, Unit]): ProcessGroupImplIO[O]

Inherited methods

def !>(sink: ProxSink[Byte]): ProcessGroupImplIOE[O, Unit]

Redirects the error outputs to a sink.

Redirects the error outputs to a sink.

The process error output type will be Unit. An alias for errorsToSink

Value parameters:
sink

Target sink

Returns:

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def !>#[O : ProxMonoid](pipe: ProxPipe[Byte, O]): ProcessGroupImplIOE[O, O]

Redirects the error outputs to a pipe and folds its output with a monoid instance.

Redirects the error outputs to a pipe and folds its output with a monoid instance.

The process error output type will be the same as the pipe's output type. An alias for errorsToFoldMonoid

Type parameters:
O

Output type of the pipe. Must have a monoid instance.

Value parameters:
pipe

Target pipe

Returns:

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def !>?[O](pipe: ProxPipe[Byte, O]): ProcessGroupImplIOE[O, Vector[O]]

Redirects the error outputs to a pipe and collects its output to a vector

Redirects the error outputs to a pipe and collects its output to a vector

The process error output type will be a vector of the pipe's output type. An alias for errorsToVector

Type parameters:
O

Output type of the pipe

Value parameters:
pipe

Target pipe

Returns:

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def `with`(nameValuePair: (String, String)): Self

Adds an environment variable to the process

Adds an environment variable to the process

Value parameters:
nameValuePair

A pair of name and value

Returns:

a new process with the working directory set

Inherited from:
ProcessLikeConfiguration
override protected def applyConfiguration(workingDirectory: Option[Path], environmentVariables: Map[String, String], removedEnvironmentVariables: Set[String]): Self
def drainErrors[O](pipe: ProxPipe[Byte, O]): ProcessGroupImplIOE[O, Unit]

Redirects the error outputs to a pipe and drains it regardless of its output type.

Redirects the error outputs to a pipe and drains it regardless of its output type.

The process error output type will be Unit.

Type parameters:
O

Output type of the pipe

Value parameters:
pipe

Target pipe

Returns:

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors

Redirects the error outputs to a pipe and folds its output with a monoid instance.

Redirects the error outputs to a pipe and folds its output with a monoid instance.

The process error output type will be the same as the pipe's output type. An alias for !&gt;#

Type parameters:
O

Output type of the pipe. Must have a monoid instance.

Value parameters:
pipe

Target pipe

Returns:

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def errorsToSink(sink: ProxSink[Byte]): ProcessGroupImplIOE[O, Unit]

Redirects the error outputs to a sink.

Redirects the error outputs to a sink.

The process error output type will be Unit. An alias for !&gt;

Value parameters:
sink

Target sink

Returns:

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def errorsToVector[O](pipe: ProxPipe[Byte, O]): ProcessGroupImplIOE[O, Vector[O]]

Redirects the error outputs to a pipe and collects its output to a vector

Redirects the error outputs to a pipe and collects its output to a vector

The process error output type will be a vector of the pipe's output type. An alias for !&gt;?

Type parameters:
O

Output type of the pipe

Value parameters:
pipe

Target pipe

Returns:

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def foldErrors[O, R](pipe: ProxPipe[Byte, O], init: R, fn: (R, O) => R): ProcessGroupImplIOE[O, R]

Redirects the error outputs to a pipe and folds it with a custom function.

Redirects the error outputs to a pipe and folds it with a custom function.

The process error output type will be R.

Type parameters:
O

Output type of the pipe

R

Result type of the fold

Value parameters:
fn

The fold function

init

The initial value for the fold

pipe

Target pipe

Returns:

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def in(workingDirectory: Path): Self

Changes the working directory of the process

Changes the working directory of the process

Value parameters:
workingDirectory

the working directory

Returns:

a new process with the working directory set

Inherited from:
ProcessLikeConfiguration

Use the inherited working directory of the process instead of an explicit one

Use the inherited working directory of the process instead of an explicit one

Returns:

a new process with the working directory cleared

Inherited from:
ProcessLikeConfiguration
def productElementNames: Iterator[String]
Inherited from:
Product
def productIterator: Iterator[Any]
Inherited from:
Product
def run[Info]()(implicit runner: ProcessRunner[Info]): ProxIO[ProcessGroupResult[O, Unit]]

Starts the process group asynchronously and blocks the execution until it is finished

Starts the process group asynchronously and blocks the execution until it is finished

Value parameters:
runner

The process runner to be used

Returns:

the result of the finished processes

Inherited from:
ProcessGroup
def start[Info]()(implicit runner: ProcessRunner[Info]): ProxResource[ProxFiber[ProcessGroupResult[O, Unit]]]

Starts the process group asynchronously and returns a closeable fiber representing it

Starts the process group asynchronously and returns a closeable fiber representing it

Joining the fiber waits for the processes to be terminated. Canceling the fiber terminates the processesnormally (with SIGTERM).

Value parameters:
runner

The process runner to be used

Returns:

a managed fiber representing the running processes

Inherited from:
ProcessGroup
def startProcessGroup[Info]()(implicit runner: ProcessRunner[Info]): ProxIO[RunningProcessGroup[O, Unit, Info]]

Starts the process group asynchronously and returns the RunningProcessGroup interface for it

Starts the process group asynchronously and returns the RunningProcessGroup interface for it

This is the most advanced way to start process groups. See start and run as alternatives.

Type parameters:
Info

The runner-specific information about the started processes

Value parameters:
runner

The process runner to be used

Returns:

interface for handling the running process group

Inherited from:
ProcessGroup
def without(name: String): Self

Removes an environment variable from the process

Removes an environment variable from the process

Usable to remove variables inherited from the parent process.

Value parameters:
name

Name of the environment variable

Returns:

a new process with the working directory set

Inherited from:
ProcessLikeConfiguration

Inherited fields

A more advanced interface for customizing the redirection per process

A more advanced interface for customizing the redirection per process

Inherited from:
RedirectableErrors
override val environmentVariables: Map[String, String]
override val removedEnvironmentVariables: Set[String]
override val workingDirectory: Option[Path]