Prox

class Object
trait Matchable
class Any

Type members

Inherited classlikes

case
class AllCapturedThroughPipe[O, OR](pipeFn: Process[_, _] => ProxPipe[Byte, O], runner: ProxStream[O] => ProxIO[OR], chunkSize: Int)
Inherited from
RedirectionModule
case
class AllCapturedToSink(sinkFn: Process[_, _] => ProxSink[Byte], chunkSize: Int)
Inherited from
RedirectionModule
case
class AllToFile(pathFn: Process[_, _] => Path, append: Boolean)
Inherited from
RedirectionModule
case
class AllToStdErr()
Inherited from
RedirectionModule
implicit protected
class FiberOps[A](f: ProxFiber[A])
Inherited from
ProxRuntime

Supported process group error redirection types. Should not be used directly, see the redirection traits instead.

Supported process group error redirection types. Should not be used directly, see the redirection traits instead.

Inherited from
RedirectionModule

Helper type class for process group error redirection dependent typing

Helper type class for process group error redirection dependent typing

Inherited from
RedirectionModule
implicit protected
class IOOps[A](io: ProxIO[A])
Inherited from
ProxRuntime
case
class InputFile(path: Path)
Inherited from
RedirectionModule
sealed

Supported input redirection types. Should not be used directly, see the redirection traits instead.

Supported input redirection types. Should not be used directly, see the redirection traits instead.

Inherited from
RedirectionModule
case
class InputStream(stream: ProxStream[Byte], flushChunks: Boolean)
Inherited from
RedirectionModule
Inherited from
ProcessRunnerModule
abstract

Default implementation of ProcessRunner using the Java process API

Default implementation of ProcessRunner using the Java process API

Inherited from
ProcessRunnerModule
class JVMRunningProcess[O, E, +Info <: JVMProcessInfo](val nativeProcess: Process, val runningInput: ProxFiber[Unit], val runningOutput: ProxFiber[O], val runningError: ProxFiber[E], val info: Info)

Default implementation of RunningProcess using the Java process API

Default implementation of RunningProcess using the Java process API

Inherited from
ProcessRunnerModule
class JVMRunningProcessGroup[O, E, +Info <: JVMProcessInfo](runningProcesses: Map[Process[Unit, Unit], RunningProcess[_, E, Info]], val runningOutput: ProxFiber[O])

Default implementation of RunningProcessGroup using the Java process API

Default implementation of RunningProcessGroup using the Java process API

Inherited from
ProcessRunnerModule
implicit protected
class ListProxErrorOps(list: List[ProxError])
Inherited from
ProxRuntime
implicit protected
class MonoidStreamOps[A](s: ProxStream[A])(implicit evidence$2: ProxMonoid[A])
Inherited from
ProxRuntime
case
class OutputFile(path: Path, append: Boolean)
Inherited from
RedirectionModule
sealed

Supported output redirection types. Should not be used directly, see the redirection traits instead.

Supported output redirection types. Should not be used directly, see the redirection traits instead.

Inherited from
RedirectionModule

Helper type class for output and error redirection dependent typing

Helper type class for output and error redirection dependent typing

Inherited from
RedirectionModule
case
class OutputStreamThroughPipe[O, OR](pipe: ProxPipe[Byte, O], runner: ProxStream[O] => ProxIO[OR], chunkSize: Int)
Inherited from
RedirectionModule
case
class OutputStreamToSink(sink: ProxSink[Byte], chunkSize: Int)
Inherited from
RedirectionModule
trait PipeBuilder[P]
Inherited from
SyntaxModule
class PipeBuilderSyntax[P](builder: PipeBuilder[P], channel: ProxPipe[Byte, Byte])
Inherited from
SyntaxModule
object Process
Inherited from
ProcessModule
trait Process[O, E]

Describes a system process to be executed

Describes a system process to be executed

This base trait is always extended with redirection and configuration capabilities represented by the traits ProcessConfiguration, RedirectableInput, RedirectableOutput and RedirectableError.

To create a process use the constructor in the companion object Process.apply.

The process specification not only encodes the process to be started but also how its input, output and error streams are redirected and executed. For this reason the effect type is also bound by the process, not just at execution time.

Type Params
E

Error output type

O

Output type

Inherited from
ProcessModule

The capability to configure process execution details

The capability to configure process execution details

Inherited from
ProcessModule
Inherited from
ProcessGroupModule
trait ProcessGroup[O, E]

Process group is two or more processes attached to each other

Process group is two or more processes attached to each other

This implements a pipeline of processes. The input of the first process and the output of the last process is redirectable with the RedirectableInput and RedirectableOutput traits. The processes are attached to each other's input/output streams, the pipe between them is customizable.

The error streams are also redirectable with the RedirectableErrors trait.

Type Params
E

Error output type

O

Output type

Inherited from
ProcessGroupModule
trait ProcessGroupResult[+O, +E]

Result of an executed process group

Result of an executed process group

Type Params
E

Error output type

O

Output type

Inherited from
ProcessGroupModule
implicit

Extension methods for unbound processes enabling the creation of process groups

Extension methods for unbound processes enabling the creation of process groups

Inherited from
SyntaxModule
trait ProcessResult[+O, +E]

Result of a finished process

Result of a finished process

Type Params
E

Error output type

O

Output type

Inherited from
ProcessModule
trait ProcessRunner[Info]

Interface for running processes and process groups

Interface for running processes and process groups

The default implementation is JVMProcessRunner

Type Params
Info

The type of information provided for a started process

Inherited from
ProcessRunnerModule
implicit
class ProcessStringContextIO(ctx: StringContext)

String interpolator for an alternative of Process.apply

String interpolator for an alternative of Process.apply

val process = proc"ls -hal $dir"
Inherited from
SyntaxModule
trait RedirectableError[+P <: ([_] =>> Process[_, _])]

The capability to redirect the error output of a process

The capability to redirect the error output of a process

Type Params
P

Self type without the RedirectableError capability

Inherited from
RedirectionModule
trait RedirectableErrors[+P <: ([_] =>> ProcessGroup[_, _])]

The capability to redirect all the error outputs simultaneously of a process group

The capability to redirect all the error outputs simultaneously of a process group

Type Params
P

Self type without the RedirectableErrors capability

Inherited from
RedirectionModule

The capability to redirect the input of a process or process group

The capability to redirect the input of a process or process group

Inherited from
RedirectionModule
trait RedirectableOutput[+P <: ([_] =>> ProcessLike)]

The capability to redirect the output of a process or a process group

The capability to redirect the output of a process or a process group

Type Params
P

Self type without the RedirectableOutput capability

Inherited from
RedirectionModule
implicit protected
class ResourceOps[A](r: ProxResource[A])
Inherited from
ProxRuntime
trait RunningProcess[O, E, +Info]

Representation of a running process

Representation of a running process

Type Params
E

Error output type

Info

Runner-specific process information

O

Output type

Inherited from
ProcessModule
trait RunningProcessGroup[O, E, +Info]

Representation of a running process group

Representation of a running process group

Type Params
E

Error output type

Info

Runner-specific per-process information type

O

Output type

Inherited from
ProcessGroupModule
case
class SimpleProcessGroupResult[+O, +E](exitCodes: Map[Process[Unit, Unit], ProxExitCode], output: O, errors: Map[Process[Unit, Unit], E])

Default implementation of ProcessGroupResult

Default implementation of ProcessGroupResult

Inherited from
ProcessGroupModule
case
class SimpleProcessResult[+O, +E](exitCode: ProxExitCode, output: O, error: E)

Default implementation of ProcessResult

Default implementation of ProcessResult

Inherited from
ProcessModule
case
class StdIn()
Inherited from
RedirectionModule
case
class StdOut()
Inherited from
RedirectionModule
implicit protected
class StreamOps[A](s: ProxStream[A])
Inherited from
ProxRuntime

Inherited types

Inherited from
ProxRuntime
type ProxFiber[_]
Inherited from
ProxRuntime
type ProxIO[_]
Inherited from
ProxRuntime
type ProxMonoid[_]
Inherited from
ProxRuntime
type ProxPipe[_, _]
Inherited from
ProxRuntime
type ProxResource[_]
Inherited from
ProxRuntime
type ProxSink[_]
Inherited from
ProxRuntime
type ProxStream[_]
Inherited from
ProxRuntime

Value members

Inherited methods

protected
def blockingEffect[A](f: => A, wrapError: Throwable => ProxError): ProxIO[A]
Inherited from
ProxRuntime
protected
def bracket[A, B](acquire: ProxIO[A])(use: A => ProxIO[B])(fin: (A, IOResult) => ProxIO[Unit]): ProxIO[B]
Inherited from
ProxRuntime
protected
def cancelFiber[A](f: ProxFiber[A]): ProxIO[Unit]
Inherited from
ProxRuntime
protected
def drainStream[A](s: ProxStream[A]): ProxIO[Unit]
Inherited from
ProxRuntime
protected
def drainToJavaOutputStream(stream: ProxStream[Byte], output: OutputStream, flushChunks: Boolean): ProxIO[Unit]
Inherited from
ProxRuntime
protected
def effect[A](f: => A, wrapError: Throwable => ProxError): ProxIO[A]
Inherited from
ProxRuntime
protected
def exitCodeFromInt(value: Int): ProxExitCode
Inherited from
ProxRuntime
protected
Inherited from
ProxRuntime
protected
def foldStream[A, B](s: ProxStream[A], init: B, f: (B, A) => B): ProxIO[B]
Inherited from
ProxRuntime
protected
def fromJavaInputStream(input: InputStream, chunkSize: Int): ProxStream[Byte]
Inherited from
ProxRuntime
protected
def identityPipe[A]: ProxPipe[A, A]
Inherited from
ProxRuntime
protected
def ioFlatMap[A, B](io: ProxIO[A], f: A => ProxIO[B]): ProxIO[B]
Inherited from
ProxRuntime
protected
def ioMap[A, B](io: ProxIO[A], f: A => B): ProxIO[B]
Inherited from
ProxRuntime
protected
def joinFiber[A](f: ProxFiber[A]): ProxIO[A]
Inherited from
ProxRuntime
protected
def makeResource[A](acquire: ProxIO[A], release: A => ProxIO[Unit]): ProxResource[A]
Inherited from
ProxRuntime
protected
def pure[A](value: A): ProxIO[A]
Inherited from
ProxRuntime
protected
def raiseError(error: ProxError): ProxIO[Unit]
Inherited from
ProxRuntime
protected
def runStreamTo[A](s: ProxStream[A], sink: ProxSink[A]): ProxIO[Unit]
Inherited from
ProxRuntime
protected
def startFiber[A](f: ProxIO[A]): ProxIO[ProxFiber[A]]
Inherited from
ProxRuntime
protected
def streamThrough[A, B](s: ProxStream[A], pipe: ProxPipe[A, B]): ProxStream[B]
Inherited from
ProxRuntime
protected
def streamToVector[A](s: ProxStream[A]): ProxIO[Vector[A]]
Inherited from
ProxRuntime
protected
def traverse[A, B](list: List[A])(f: A => ProxIO[B]): ProxIO[List[B]]
Inherited from
ProxRuntime
protected
def unit: ProxIO[Unit]
Inherited from
ProxRuntime
protected
def useResource[A, B](r: ProxResource[A], f: A => ProxIO[B]): ProxIO[B]
Inherited from
ProxRuntime

Implicits

Inherited implicits

final implicit protected
def FiberOps[A](f: ProxFiber[A]): FiberOps[A]
Inherited from
ProxRuntime
final implicit protected
def IOOps[A](io: ProxIO[A]): IOOps[A]
Inherited from
ProxRuntime
final implicit protected
Inherited from
ProxRuntime
final implicit protected
Inherited from
ProxRuntime
final implicit

Extension methods for unbound processes enabling the creation of process groups

Extension methods for unbound processes enabling the creation of process groups

Inherited from
SyntaxModule
final implicit

String interpolator for an alternative of Process.apply

String interpolator for an alternative of Process.apply

val process = proc"ls -hal $dir"
Inherited from
SyntaxModule
final implicit protected
Inherited from
ProxRuntime
final implicit protected
def StreamOps[A](s: ProxStream[A]): StreamOps[A]
Inherited from
ProxRuntime