case class ProcessImpl[F[_]](command: String, arguments: List[String], workingDirectory: Option[Path], environmentVariables: Map[String, String], removedEnvironmentVariables: Set[String], outputRedirection: OutputRedirection[F], runOutputStream: (java.io.InputStream, Blocker, ContextShift[F]) => F[Unit], errorRedirection: OutputRedirection[F], runErrorStream: (java.io.InputStream, Blocker, ContextShift[F]) => F[Unit], inputRedirection: InputRedirection[F])(implicit concurrent: Concurrent[F]) extends Process[F, Unit, Unit] with RedirectableOutput[F, [β$14$]ProcessImplO[F, β$14$]] with RedirectableError[F, [β$15$]ProcessImplE[F, β$15$]] with RedirectableInput[F, ProcessImplI[F]] with ProcessConfiguration[F, ProcessImpl[F]] with Product with Serializable
Process with no streams bound
- Alphabetic
- By Inheritance
- ProcessImpl
- Serializable
- Product
- Equals
- ProcessConfiguration
- RedirectableInput
- RedirectableError
- RedirectableOutput
- Process
- ProcessLike
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ProcessImpl(command: String, arguments: List[String], workingDirectory: Option[Path], environmentVariables: Map[String, String], removedEnvironmentVariables: Set[String], outputRedirection: OutputRedirection[F], runOutputStream: (java.io.InputStream, Blocker, ContextShift[F]) => F[Unit], errorRedirection: OutputRedirection[F], runErrorStream: (java.io.InputStream, Blocker, ContextShift[F]) => F[Unit], inputRedirection: InputRedirection[F])(implicit concurrent: Concurrent[F])
Value Members
- def !<(stream: Stream[F, Byte]): ProcessImplI[F]
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.
- stream
Input stream
- returns
A new process or process group with the input redirected and the input redirection capability removed.
- Definition Classes
- RedirectableInput
- def !>(path: Path): ProcessImplE[F, Unit]
Redirects the error output to a file natively
Redirects the error output to a file natively
An alias for errorToFile
- path
Target file path
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def !>(sink: Pipe[F, Byte, Unit]): ProcessImplE[F, 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
- sink
Target sink
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def !>#[O](pipe: Pipe[F, Byte, O])(implicit arg0: Monoid[O]): ProcessImplE[F, 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
- O
Output type of the pipe. Must have a monoid instance.
- pipe
Target pipe
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def !>>(path: Path): ProcessImplE[F, 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
- path
Target file path
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def !>?[O](pipe: Pipe[F, Byte, O]): ProcessImplE[F, 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
- O
Output type of the pipe
- pipe
Target pipe
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def <(stream: Stream[F, Byte]): ProcessImplI[F]
Feed the process input from a byte stream.
Feed the process input from a byte stream.
An alias for fromStream.
- stream
Input stream
- returns
A new process or process group with the input redirected and the input redirection capability removed.
- Definition Classes
- RedirectableInput
- def <(path: Path): ProcessImplI[F]
Feed the process input from a file natively.
Feed the process input from a file natively.
An alias for fromFile.
- path
Path to the file
- returns
A new process or process group with the input redirected and the input redirection capability removed.
- Definition Classes
- RedirectableInput
- def >(path: Path): ProcessImplO[F, Unit]
Redirects the output to a file natively
Redirects the output to a file natively
An alias for toFile
- path
Target file path
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def >(sink: Pipe[F, Byte, Unit]): ProcessImplO[F, Unit]
Redirects the output to a sink.
Redirects the output to a sink.
The process output type will be Unit. An alias for toSink
- sink
Target sink
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def >#[O](pipe: Pipe[F, Byte, O])(implicit arg0: Monoid[O]): ProcessImplO[F, 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
- O
Output type of the pipe. Must have a monoid instance.
- pipe
Target pipe
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def >>(path: Path): ProcessImplO[F, 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
- path
Target file path
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def >?[O](pipe: Pipe[F, Byte, O]): ProcessImplO[F, 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
- O
Output type of the pipe
- pipe
Target pipe
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def appendErrorToFile(path: Path): ProcessImplE[F, 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 !>>
- path
Target file path
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def appendToFile(path: Path): ProcessImplO[F, Unit]
Redirects the output to a file natively in append mode
Redirects the output to a file natively in append mode
An alias for >>
- path
Target file path
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- val arguments: List[String]
- Definition Classes
- ProcessImpl → Process
- val command: String
- Definition Classes
- ProcessImpl → Process
- implicit val concurrent: Concurrent[F]
- Definition Classes
- ProcessImpl → RedirectableError → RedirectableOutput → Process
- def connectError[R <: OutputRedirection[F], RE](target: R)(implicit outputRedirectionType: Aux[F, R, RE]): ProcessImplE[F, RE]
The low level operation to attach an error output to a process
The low level operation to attach an error output to a process
Use one of the other methods of this trait for convenience. This is the place where the output type gets calculated with a helper type class called OutputRedirectionType which implements the type level computation for figuring out E.
- R
Error output redirection type
- target
Redirection target
- outputRedirectionType
Helper for dependent error output type
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- ProcessImpl → RedirectableError
- def connectInput(source: InputRedirection[F]): ProcessImplI[F]
The low level method to attach an input to a process or process group.
The low level method to attach an input to a process or process group.
Use the other methods in this trait for convenience.
- source
Redirection source
- returns
A new process or process group with the input redirected and the input redirection capability removed.
- Definition Classes
- ProcessImpl → RedirectableInput
- def connectOutput[R <: OutputRedirection[F], RO](target: R)(implicit outputRedirectionType: Aux[F, R, RO]): ProcessImplO[F, RO]
The low level operation to attach an output to a process
The low level operation to attach an output to a process
Use one of the other methods of this trait for convenience. This is the place where the output type gets calculated with a helper type class called OutputRedirectionType which implements the type level computation for figuring out O.
- R
Output redirection type
- target
Redirection target
- outputRedirectionType
Helper for dependent output type
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- ProcessImpl → RedirectableOutput
- def drainError[O](pipe: Pipe[F, Byte, O]): ProcessImplE[F, 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.
- O
Output type of the pipe
- pipe
Target pipe
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def drainOutput[O](pipe: Pipe[F, Byte, O]): ProcessImplO[F, 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.
- O
Output type of the pipe
- pipe
Target pipe
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- val environmentVariables: Map[String, String]
- Definition Classes
- ProcessImpl → Process
- val errorRedirection: OutputRedirection[F]
- Definition Classes
- ProcessImpl → Process
- def errorToFile(path: Path): ProcessImplE[F, Unit]
Redirects the error output to a file natively
Redirects the error output to a file natively
An alias for !>
- path
Target file path
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def errorToFoldMonoid[O](pipe: Pipe[F, Byte, O])(implicit arg0: Monoid[O]): ProcessImplE[F, 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 !>#
- O
Output type of the pipe. Must have a monoid instance.
- pipe
Target pipe
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def errorToSink(sink: Pipe[F, Byte, Unit]): ProcessImplE[F, 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 !>
- sink
Target sink
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def errorToVector[O](pipe: Pipe[F, Byte, O]): ProcessImplE[F, 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 !>?
- O
Output type of the pipe
- pipe
Target pipe
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def foldError[O, R](pipe: Pipe[F, Byte, O], init: R, fn: (R, O) => R): ProcessImplE[F, 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.
- O
Output type of the pipe
- R
Result type of the fold
- pipe
Target pipe
- init
The initial value for the fold
- fn
The fold function
- returns
Returns a new process with its error output redirected and its error redirection capability removed.
- Definition Classes
- RedirectableError
- def foldOutput[O, R](pipe: Pipe[F, Byte, O], init: R, fn: (R, O) => R): ProcessImplO[F, 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.
- O
Output type of the pipe
- R
Result type of the fold
- pipe
Target pipe
- init
The initial value for the fold
- fn
The fold function
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def fromFile(path: Path): ProcessImplI[F]
Feed the process input from a file natively.
Feed the process input from a file natively.
An alias for <.
- path
Path to the file
- returns
A new process or process group with the input redirected and the input redirection capability removed.
- Definition Classes
- RedirectableInput
- def fromStream(stream: Stream[F, Byte], flushChunks: Boolean): ProcessImplI[F]
Feed the process input from a byte stream.
- stream
Input stream
- flushChunks
Flush the process input stream after each chunk
- returns
A new process or process group with the input redirected and the input redirection capability removed.
- Definition Classes
- RedirectableInput
- def in(workingDirectory: Path): ProcessImpl[F]
Changes the working directory of the process
Changes the working directory of the process
- workingDirectory
the working directory
- returns
a new process with the working directory set
- Definition Classes
- ProcessConfiguration
- val inputRedirection: InputRedirection[F]
- Definition Classes
- ProcessImpl → Process
- val outputRedirection: OutputRedirection[F]
- Definition Classes
- ProcessImpl → Process
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val removedEnvironmentVariables: Set[String]
- Definition Classes
- ProcessImpl → Process
- def run(blocker: Blocker)(implicit runner: ProcessRunner[F]): F[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
- blocker
Execution context for blocking operations
- runner
The process runner to be used
- returns
the result of the finished process
- Definition Classes
- Process
- val runErrorStream: (java.io.InputStream, Blocker, ContextShift[F]) => F[Unit]
- Definition Classes
- ProcessImpl → Process
- val runOutputStream: (java.io.InputStream, Blocker, ContextShift[F]) => F[Unit]
- Definition Classes
- ProcessImpl → Process
- def start(blocker: Blocker)(implicit runner: ProcessRunner[F]): Resource[F, Fiber[F, 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).
- blocker
Execution context for blocking operations
- runner
The process runner to be used
- returns
a managed fiber representing the running process
- Definition Classes
- Process
- def startProcess(blocker: Blocker)(implicit runner: ProcessRunner[F]): F[RunningProcess[F, Unit, Unit]]
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.
- blocker
Execution context for blocking operations
- runner
The process runner to be used
- returns
interface for handling the running process
- Definition Classes
- Process
- def toFile(path: Path): ProcessImplO[F, Unit]
Redirects the output to a file natively
Redirects the output to a file natively
An alias for >
- path
Target file path
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def toFoldMonoid[O](pipe: Pipe[F, Byte, O])(implicit arg0: Monoid[O]): ProcessImplO[F, 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 >#
- O
Output type of the pipe. Must have a monoid instance.
- pipe
Target pipe
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def toSink(sink: Pipe[F, Byte, Unit]): ProcessImplO[F, Unit]
Redirects the output to a sink.
Redirects the output to a sink.
The process output type will be Unit. An alias for >
- sink
Target sink
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def toVector[O](pipe: Pipe[F, Byte, O]): ProcessImplO[F, 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 >?
- O
Output type of the pipe
- pipe
Target pipe
- returns
Returns a new process or process group with its output redirected and its output redirection capability removed.
- Definition Classes
- RedirectableOutput
- def with(nameValuePair: (String, String)): ProcessImpl[F]
Adds an environment variable to the process
Adds an environment variable to the process
- nameValuePair
A pair of name and value
- returns
a new process with the working directory set
- Definition Classes
- ProcessConfiguration
- def withArguments(newArguments: List[String]): ProcessImpl[F]
Replaces the arguments
Replaces the arguments
- newArguments
new list of arguments
- returns
returns a new process specification
- Definition Classes
- ProcessConfiguration
- def withCommand(newCommand: String): ProcessImpl[F]
Replaces the command
Replaces the command
- newCommand
new value for the command to be executed
- returns
returns a new process specification
- Definition Classes
- ProcessConfiguration
- def without(name: String): ProcessImpl[F]
Removes an environment variable from the process
Removes an environment variable from the process
Usable to remove variables inherited from the parent process.
- name
Name of the environment variable
- returns
a new process with the working directory set
- Definition Classes
- ProcessConfiguration
- val workingDirectory: Option[Path]
- Definition Classes
- ProcessImpl → Process