ProcessImpl

case
class ProcessImpl(command: String, arguments: List[String], workingDirectory: Option[Path], environmentVariables: Map[String, String], removedEnvironmentVariables: Set[String], outputRedirection: OutputRedirection, runOutputStream: InputStream => ProxIO[Unit], errorRedirection: OutputRedirection, runErrorStream: InputStream => ProxIO[Unit], inputRedirection: InputRedirection) extends Process[Unit, Unit] with RedirectableOutput[ProcessImplO] with RedirectableError[ProcessImplE] with RedirectableInput[ProcessImplI]

Process with no streams bound

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

Type members

Types

override

Value members

Concrete methods

override
def connectError[R <: OutputRedirection, RE](target: R)(implicit outputRedirectionType: Aux[R, RE]): ProcessImplE[RE]
Definition Classes
Definition Classes
def connectOutput[R <: OutputRedirection, RO](target: R)(implicit outputRedirectionType: Aux[R, RO]): ProcessImplO[RO]

Inherited methods

def !<(stream: ProxStream[Byte]): ProcessImplI

Feed the process input from a byte stream with flushing per chunks enabled.

Feed the process input from a byte stream with flushing per chunks enabled.

An alias for fromStream.

Value Params
stream

Input stream

Returns

A new process or process group with the input redirected and the input redirection capability removed.

Inherited from
RedirectableInput
def !>(path: Path): ProcessImplE[Unit]

Redirects the error output to a file natively

Redirects the error output to a file natively

An alias for errorToFile

Value Params
path

Target file path

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def !>(sink: ProxSink[Byte]): ProcessImplE[Unit]

Redirects the error output to a sink.

Redirects the error output to a sink.

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

Value Params
sink

Target sink

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

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

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

Redirects the error output 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 errorToFoldMonoid

Type Params
O

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

Value Params
pipe

Target pipe

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def !>>(path: Path): ProcessImplE[Unit]

Redirects the error output to a file natively in append mode

Redirects the error output to a file natively in append mode

An alias for appendErrorToFile

Value Params
path

Target file path

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

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

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

Redirects the error output 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 errorToVector

Type Params
O

Output type of the pipe

Value Params
pipe

Target pipe

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def <(stream: ProxStream[Byte]): ProcessImplI

Feed the process input from a byte stream.

Feed the process input from a byte stream.

An alias for fromStream.

Value Params
stream

Input stream

Returns

A new process or process group with the input redirected and the input redirection capability removed.

Inherited from
RedirectableInput
def <(path: Path): ProcessImplI

Feed the process input from a file natively.

Feed the process input from a file natively.

An alias for fromFile.

Value Params
path

Path to the file

Returns

A new process or process group with the input redirected and the input redirection capability removed.

Inherited from
RedirectableInput
def >(path: Path): ProcessImplO[Unit]

Redirects the output to a file natively

Redirects the output to a file natively

An alias for toFile

Value Params
path

Target file path

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def >(sink: ProxSink[Byte]): ProcessImplO[Unit]

Redirects the output to a sink.

Redirects the output to a sink.

The process output type will be Unit. An alias for toSink

Value Params
sink

Target sink

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def >#[O : ProxMonoid](pipe: ProxPipe[Byte, O]): ProcessImplO[O]

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

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

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

Type Params
O

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

Value Params
pipe

Target pipe

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def >>(path: Path): ProcessImplO[Unit]

Redirects the output to a file natively in append mode

Redirects the output to a file natively in append mode

An alias for appendToFile

Value Params
path

Target file path

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def >?[O](pipe: ProxPipe[Byte, O]): ProcessImplO[Vector[O]]

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

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

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

Type Params
O

Output type of the pipe

Value Params
pipe

Target pipe

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

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

Adds an environment variable to the process

Adds an environment variable to the process

Value Params
nameValuePair

A pair of name and value

Returns

a new process with the working directory set

Inherited from
ProcessLikeConfiguration
def appendErrorToFile(path: Path): ProcessImplE[Unit]

Redirects the error output to a file natively in append mode

Redirects the error output to a file natively in append mode

An alias for !&gt;&gt;

Value Params
path

Target file path

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def appendToFile(path: Path): ProcessImplO[Unit]

Redirects the output to a file natively in append mode

Redirects the output to a file natively in append mode

An alias for &gt;&gt;

Value Params
path

Target file path

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

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

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

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

The process error output type will be Unit.

Type Params
O

Output type of the pipe

Value Params
pipe

Target pipe

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def drainOutput[O](pipe: ProxPipe[Byte, O]): ProcessImplO[Unit]

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

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

The process output type will be Unit.

Type Params
O

Output type of the pipe

Value Params
pipe

Target pipe

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def errorToFile(path: Path): ProcessImplE[Unit]

Redirects the error output to a file natively

Redirects the error output to a file natively

An alias for !&gt;

Value Params
path

Target file path

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def errorToFoldMonoid[O : ProxMonoid](pipe: ProxPipe[Byte, O]): ProcessImplE[O]

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

Redirects the error output 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 Params
O

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

Value Params
pipe

Target pipe

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def errorToSink(sink: ProxSink[Byte]): ProcessImplE[Unit]

Redirects the error output to a sink.

Redirects the error output to a sink.

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

Value Params
sink

Target sink

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def errorToVector[O](pipe: ProxPipe[Byte, O]): ProcessImplE[Vector[O]]

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

Redirects the error output 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 Params
O

Output type of the pipe

Value Params
pipe

Target pipe

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def foldError[O, R](pipe: ProxPipe[Byte, O], init: R, fn: (R, O) => R): ProcessImplE[R]

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

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

The process error output type will be R.

Type Params
O

Output type of the pipe

R

Result type of the fold

Value Params
fn

The fold function

init

The initial value for the fold

pipe

Target pipe

Returns

Returns a new process with its error output redirected and its error redirection capability removed.

Inherited from
RedirectableError
def foldOutput[O, R](pipe: ProxPipe[Byte, O], init: R, fn: (R, O) => R): ProcessImplO[R]

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

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

The process output type will be R.

Type Params
O

Output type of the pipe

R

Result type of the fold

Value Params
fn

The fold function

init

The initial value for the fold

pipe

Target pipe

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def fromFile(path: Path): ProcessImplI

Feed the process input from a file natively.

Feed the process input from a file natively.

An alias for &lt;.

Value Params
path

Path to the file

Returns

A new process or process group with the input redirected and the input redirection capability removed.

Inherited from
RedirectableInput
def fromStream(stream: ProxStream[Byte], flushChunks: Boolean): ProcessImplI

Feed the process input from a byte stream.

Feed the process input from a byte stream.

An alias for &lt; and !&lt;.

Value Params
flushChunks

Flush the process input stream after each chunk

stream

Input stream

Returns

A new process or process group with the input redirected and the input redirection capability removed.

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

Changes the working directory of the process

Changes the working directory of the process

Value Params
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[ProcessResult[Unit, Unit]]

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

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

Value Params
runner

The process runner to be used

Returns

the result of the finished process

Inherited from
Process
def start[Info]()(implicit runner: ProcessRunner[Info]): ProxResource[ProxFiber[ProcessResult[Unit, Unit]]]

Starts the process asynchronously and returns a closeable fiber representing it

Starts the process asynchronously and returns a closeable fiber representing it

Joining the fiber waits for the process to be terminated. Canceling the fiber terminates the process normally (with SIGTERM).

Value Params
runner

The process runner to be used

Returns

a managed fiber representing the running process

Inherited from
Process
def startProcess[Info]()(implicit runner: ProcessRunner[Info]): ProxIO[RunningProcess[Unit, Unit, Info]]

Starts the process asynchronously and returns the RunningProcess interface for it

Starts the process asynchronously and returns the RunningProcess interface for it

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

Type Params
Info

The runner-specific process info type

Value Params
runner

The process runner to be used

Returns

interface for handling the running process

Inherited from
Process
def toFile(path: Path): ProcessImplO[Unit]

Redirects the output to a file natively

Redirects the output to a file natively

An alias for &gt;

Value Params
path

Target file path

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def toFoldMonoid[O : ProxMonoid](pipe: ProxPipe[Byte, O]): ProcessImplO[O]

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

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

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

Type Params
O

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

Value Params
pipe

Target pipe

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def toSink(sink: ProxSink[Byte]): ProcessImplO[Unit]

Redirects the output to a sink.

Redirects the output to a sink.

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

Value Params
sink

Target sink

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def toVector[O](pipe: ProxPipe[Byte, O]): ProcessImplO[Vector[O]]

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

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

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

Type Params
O

Output type of the pipe

Value Params
pipe

Target pipe

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from
RedirectableOutput
def withArguments(newArguments: List[String]): Self

Replaces the arguments

Replaces the arguments

Value Params
newArguments

new list of arguments

Returns

returns a new process specification

Inherited from
ProcessConfiguration
def withCommand(newCommand: String): Self

Replaces the command

Replaces the command

Value Params
newCommand

new value for the command to be executed

Returns

returns a new process specification

Inherited from
ProcessConfiguration
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 Params
name

Name of the environment variable

Returns

a new process with the working directory set

Inherited from
ProcessLikeConfiguration