ProxFS2

io.github.vigoo.prox.ProxFS2
See theProxFS2 companion object
trait ProxFS2[F[_]] extends Prox

Attributes

Companion
object
Graph
Supertypes
trait Prox
trait SyntaxModule
trait ProcessRunnerModule
trait RedirectionModule
trait ProcessGroupModule
trait ProcessModule
trait CommonModule
trait ProxRuntime
class Object
trait Matchable
class Any
Show all

Members list

Type members

Inherited classlikes

case class AllCapturedThroughPipe[O, OR](pipeFn: Process[_, _] => ProxPipe[Byte, O], runner: ProxStream[O] => ProxIO[OR], chunkSize: Int) extends GroupErrorRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class AllCapturedToSink(sinkFn: Process[_, _] => ProxSink[Byte], chunkSize: Int) extends GroupErrorRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class AllToFile(pathFn: Process[_, _] => Path, append: Boolean) extends GroupErrorRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class AllToStdErr() extends GroupErrorRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
implicit protected class FiberOps[A](f: ProxFiber[A])

Attributes

Inherited from:
ProxRuntime
Supertypes
class Object
trait Matchable
class Any
sealed trait GroupErrorRedirection

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.

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any

Helper type class for process group error redirection dependent typing

Helper type class for process group error redirection dependent typing

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any
implicit protected class IOOps[A](io: ProxIO[A])

Attributes

Inherited from:
ProxRuntime
Supertypes
class Object
trait Matchable
class Any
case class InputFile(path: Path) extends InputRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
sealed trait InputRedirection

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.

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class InputFile
class InputStream
class StdIn
case class InputStream(stream: ProxStream[Byte], flushChunks: Boolean) extends InputRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
class JVMProcessInfo()

Attributes

Inherited from:
ProcessRunnerModule
Supertypes
class Object
trait Matchable
class Any

Attributes

Inherited from:
ProcessRunnerModule
Supertypes
class Object
trait Matchable
class Any
abstract class JVMProcessRunnerBase[Info <: JVMProcessInfo] extends ProcessRunner[Info]

Default implementation of ProcessRunner using the Java process API

Default implementation of ProcessRunner using the Java process API

Attributes

Inherited from:
ProcessRunnerModule
Supertypes
trait ProcessRunner[Info]
class Object
trait Matchable
class Any
Known subtypes

Attributes

Inherited from:
ProcessRunnerModule
Supertypes
class Object
trait Matchable
class Any
class JVMRunningProcess[O, E, +Info <: JVMProcessInfo](val nativeProcess: Process, val runningInput: ProxFiber[Unit], val runningOutput: ProxFiber[O], val runningError: ProxFiber[E], val info: Info) extends RunningProcess[O, E, Info]

Default implementation of RunningProcess using the Java process API

Default implementation of RunningProcess using the Java process API

Attributes

Inherited from:
ProcessRunnerModule
Supertypes
trait RunningProcess[O, E, Info]
class Object
trait Matchable
class Any
class JVMRunningProcessGroup[O, E, +Info <: JVMProcessInfo](runningProcesses: Map[Process[Unit, Unit], RunningProcess[_, E, Info]], val runningOutput: ProxFiber[O]) extends RunningProcessGroup[O, E, Info]

Default implementation of RunningProcessGroup using the Java process API

Default implementation of RunningProcessGroup using the Java process API

Attributes

Inherited from:
ProcessRunnerModule
Supertypes
trait RunningProcessGroup[O, E, Info]
class Object
trait Matchable
class Any
implicit protected class ListProxErrorOps(list: List[ProxError])

Attributes

Inherited from:
ProxRuntime
Supertypes
class Object
trait Matchable
class Any
implicit protected class MonoidStreamOps[A](s: ProxStream[A])(implicit evidence$2: ProxMonoid[A])

Attributes

Inherited from:
ProxRuntime
Supertypes
class Object
trait Matchable
class Any
case class OutputFile(path: Path, append: Boolean) extends OutputRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
sealed trait OutputRedirection

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.

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any

Helper type class for output and error redirection dependent typing

Helper type class for output and error redirection dependent typing

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any
case class OutputStreamThroughPipe[O, OR](pipe: ProxPipe[Byte, O], runner: ProxStream[O] => ProxIO[OR], chunkSize: Int) extends OutputRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class OutputStreamToSink(sink: ProxSink[Byte], chunkSize: Int) extends OutputRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
trait PipeBuilder[P]

Attributes

Inherited from:
SyntaxModule
Supertypes
class Object
trait Matchable
class Any
class PipeBuilderSyntax[P](builder: PipeBuilder[P], channel: ProxPipe[Byte, Byte])

Attributes

Inherited from:
SyntaxModule
Supertypes
class Object
trait Matchable
class Any
object Process

Attributes

Inherited from:
ProcessModule
Supertypes
class Object
trait Matchable
class Any
trait Process[O, E] extends ProcessLike, ProcessConfiguration

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 parameters

E

Error output type

O

Output type

Attributes

Inherited from:
ProcessModule
Supertypes
trait ProcessLike
class Object
trait Matchable
class Any
Show all

The capability to configure process execution details

The capability to configure process execution details

Attributes

Inherited from:
ProcessModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Process[O, E]
object ProcessGroup

Attributes

Inherited from:
ProcessGroupModule
Supertypes
class Object
trait Matchable
class Any
trait ProcessGroup[O, E] extends ProcessLike, ProcessGroupConfiguration[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 parameters

E

Error output type

O

Output type

Attributes

Inherited from:
ProcessGroupModule
Supertypes
trait ProcessLike
class Object
trait Matchable
class Any
Show all

Attributes

Inherited from:
ProcessGroupModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait ProcessGroup[O, E]
trait ProcessGroupResult[+O, +E]

Result of an executed process group

Result of an executed process group

Type parameters

E

Error output type

O

Output type

Attributes

Inherited from:
ProcessGroupModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Inherited from:
CommonModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Process[O, E]
trait ProcessGroup[O, E]
implicit class ProcessPiping(process: UnboundProcess)

Extension methods for unbound processes enabling the creation of process groups

Extension methods for unbound processes enabling the creation of process groups

Attributes

Inherited from:
SyntaxModule
Supertypes
class Object
trait Matchable
class Any
trait ProcessResult[+O, +E]

Result of a finished process

Result of a finished process

Type parameters

E

Error output type

O

Output type

Attributes

Inherited from:
ProcessModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class SimpleProcessResult[O, E]
trait ProcessRunner[Info]

Interface for running processes and process groups

Interface for running processes and process groups

The default implementation is JVMProcessRunner

Type parameters

Info

The type of information provided for a started process

Attributes

Inherited from:
ProcessRunnerModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
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"

Attributes

Inherited from:
SyntaxModule
Supertypes
class Object
trait Matchable
class Any
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 parameters

P

Self type without the RedirectableError capability

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any

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 parameters

P

Self type without the RedirectableErrors capability

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any
trait RedirectableInput[+P <: ProcessLike]

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

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

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any
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 parameters

P

Self type without the RedirectableOutput capability

Attributes

Inherited from:
RedirectionModule
Supertypes
class Object
trait Matchable
class Any
implicit protected class ResourceOps[A](r: ProxResource[A])

Attributes

Inherited from:
ProxRuntime
Supertypes
class Object
trait Matchable
class Any
trait RunningProcess[O, E, +Info]

Representation of a running process

Representation of a running process

Type parameters

E

Error output type

Info

Runner-specific process information

O

Output type

Attributes

Inherited from:
ProcessModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class JVMRunningProcess[O, E, Info]
trait RunningProcessGroup[O, E, +Info]

Representation of a running process group

Representation of a running process group

Type parameters

E

Error output type

Info

Runner-specific per-process information type

O

Output type

Attributes

Inherited from:
ProcessGroupModule
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class JVMRunningProcessGroup[O, E, Info]
case class SimpleProcessGroupResult[+O, +E](exitCodes: Map[Process[Unit, Unit], ProxExitCode], output: O, errors: Map[Process[Unit, Unit], E]) extends ProcessGroupResult[O, E]

Default implementation of ProcessGroupResult

Default implementation of ProcessGroupResult

Attributes

Inherited from:
ProcessGroupModule
Supertypes
trait Serializable
trait Product
trait Equals
trait ProcessGroupResult[O, E]
class Object
trait Matchable
class Any
Show all
case class SimpleProcessResult[+O, +E](exitCode: ProxExitCode, output: O, error: E) extends ProcessResult[O, E]

Default implementation of ProcessResult

Default implementation of ProcessResult

Attributes

Inherited from:
ProcessModule
Supertypes
trait Serializable
trait Product
trait Equals
trait ProcessResult[O, E]
class Object
trait Matchable
class Any
Show all
case class StdIn() extends InputRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class StdOut() extends OutputRedirection

Attributes

Inherited from:
RedirectionModule
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
implicit protected class StreamOps[A](s: ProxStream[A])

Attributes

Inherited from:
ProxRuntime
Supertypes
class Object
trait Matchable
class Any

Types

override type ProxExitCode = ExitCode
override type ProxFiber[A] = Fiber[F, Throwable, A]
override type ProxIO[A] = F[A]
override type ProxMonoid[A] = Monoid[A]
override type ProxPipe[A, B] = (F, A) => B
override type ProxResource[A] = Resource[F, A]
override type ProxSink[A] = (F, A) => Unit
override type ProxStream[A] = Stream[F, A]

Value members

Abstract fields

val instances: Sync[F] & Concurrent[F]

Implicits

Inherited implicits

final implicit protected def FiberOps[A](f: ProxFiber[A]): FiberOps[A]

Attributes

Inherited from:
ProxRuntime
final implicit protected def IOOps[A](io: F[A]): IOOps[A]

Attributes

Inherited from:
ProxRuntime
final implicit protected def ListProxErrorOps(list: List[ProxError]): ListProxErrorOps

Attributes

Inherited from:
ProxRuntime
final implicit protected def MonoidStreamOps[A : Monoid](s: ProxStream[A]): MonoidStreamOps[A]

Attributes

Inherited from:
ProxRuntime
final implicit def ProcessPiping(process: UnboundProcess): ProcessPiping

Extension methods for unbound processes enabling the creation of process groups

Extension methods for unbound processes enabling the creation of process groups

Attributes

Inherited from:
SyntaxModule
final implicit def ProcessStringContextIO(ctx: StringContext): ProcessStringContextIO

String interpolator for an alternative of Process.apply

String interpolator for an alternative of Process.apply

val process = proc"ls -hal $dir"

Attributes

Inherited from:
SyntaxModule
final implicit protected def ResourceOps[A](r: ProxResource[A]): ResourceOps[A]

Attributes

Inherited from:
ProxRuntime
final implicit protected def StreamOps[A](s: ProxStream[A]): StreamOps[A]

Attributes

Inherited from:
ProxRuntime