Packages

  • package root
    Definition Classes
    root
  • package io
    Definition Classes
    root
  • package github
    Definition Classes
    io
  • package vigoo
    Definition Classes
    github
  • package prox

    Provides classes to work with system processes in a type safe way.

    Provides classes to work with system processes in a type safe way.

    Refer to the user guide for more information.

    A process to be executed is represented by the Process trait. Once it has finished running the results are in ProcessResult. We call a group of processes attached together a process group, represented by ProcessGroup, its result is described by ProcessGroupResult.

    Redirection of input, output and error is enabled by the RedirectableInput, RedirectableOutput and RedirectableError trait for single processes, and the RedirectableErrors trait for process groups.

    Processes and process groups are executed by a ProcessRunner, the default implementation is called JVMProcessRunner.

    Definition Classes
    vigoo
  • trait ProcessGroupModule extends AnyRef
    Definition Classes
    prox
  • ProcessGroup
  • ProcessGroupConfiguration
  • ProcessGroupResult
  • RunningProcessGroup
  • SimpleProcessGroupResult

trait ProcessGroup[O, E] extends ProcessLike with Prox.ProcessGroupConfiguration[O, E]

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.

O

Output type

E

Error output type

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ProcessGroup
  2. ProcessGroupConfiguration
  3. ProcessLikeConfiguration
  4. ProcessLike
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract type Self <: Prox.ProcessGroup[O, E]
  2. class ConfigApplication[P <: Prox.ProcessLikeConfiguration] extends AnyRef
    Definition Classes
    ProcessGroupConfiguration

Abstract Value Members

  1. abstract val firstProcess: Prox.Process[Prox.ProxStream[Byte], E]
  2. abstract val innerProcesses: List[UnboundIProcess[Prox.ProxStream[Byte], E]]
  3. abstract val lastProcess: UnboundIProcess[O, E]
  4. abstract def map(f: Mapper[O, E]): Self

    Applies the given mapper to each process in the group

    Applies the given mapper to each process in the group

    f

    process mapper

    returns

    a new process group with all the processes altered by the mapper

  5. abstract val originalProcesses: List[Prox.Process[Unit, Unit]]

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def applyConfiguration(workingDirectory: Option[Path], environmentVariables: Map[String, String], removedEnvironmentVariables: Set[String]): Self
    Attributes
    protected
    Definition Classes
    ProcessGroupConfigurationProcessLikeConfiguration
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. val environmentVariables: Map[String, String]
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. def in(workingDirectory: Path): Self

    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
    ProcessLikeConfiguration
  13. def inInheritedWorkingDirectory(): Self

    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

    Definition Classes
    ProcessLikeConfiguration
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  18. val removedEnvironmentVariables: Set[String]
  19. def run[Info]()(implicit runner: Prox.ProcessRunner[Info]): Prox.ProxIO[Prox.ProcessGroupResult[O, E]]

    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

    runner

    The process runner to be used

    returns

    the result of the finished processes

  20. def start[Info]()(implicit runner: Prox.ProcessRunner[Info]): Prox.ProxResource[Prox.ProxFiber[Prox.ProcessGroupResult[O, E]]]

    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).

    runner

    The process runner to be used

    returns

    a managed fiber representing the running processes

  21. def startProcessGroup[Info]()(implicit runner: Prox.ProcessRunner[Info]): Prox.ProxIO[Prox.RunningProcessGroup[O, E, 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.

    Info

    The runner-specific information about the started processes

    runner

    The process runner to be used

    returns

    interface for handling the running process group

  22. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  23. def toString(): String
    Definition Classes
    AnyRef → Any
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. def with(nameValuePair: (String, String)): Self

    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
    ProcessLikeConfiguration
  28. 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.

    name

    Name of the environment variable

    returns

    a new process with the working directory set

    Definition Classes
    ProcessLikeConfiguration
  29. val workingDirectory: Option[Path]
  30. object ConfigApplication
    Definition Classes
    ProcessGroupConfiguration

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Prox.ProcessGroupConfiguration[O, E]

Inherited from ProcessLike

Inherited from AnyRef

Inherited from Any

Ungrouped