ProcessModule

PackageAxial.Process

Process operations

A command or specification is immutable data. Constructing it starts no process. Use toFlow to add execution to an application workflow, or run / tryRun for a script boundary. The former raises ProcessRunException on failure; the latter preserves the complete Exit so the caller can choose a policy.

Output routing and retention are separate decisions. A destination controls where bytes go; capture controls which bytes remain available in ProcessResult. Streaming constructors produce a ProcessStream, whose transforms and terminals are grouped on its companion module page.

See Commands and composition, output capture, and streaming output for examples.

Contents

Summary

NameSignatureSynopsis
Create commands
commandArgsProcess.commandArgs fileName argumentsCreates a one-command process specification from an executable and already-separated arguments.
commandProcess.command commandLineCreates a safely tokenized one-command process specification from an interpolated command template.
commandTextProcess.commandText commandLineCreates a safely tokenized one-command process specification from fixed command text.
fileNameProcess.fileName commandNo description available.
argumentsProcess.arguments commandNo description available.
argProcess.arg value commandNo description available.
secretArgProcess.secretArg value commandNo description available.
Configure execution
tryWorkingDirectoryProcess.tryWorkingDirectory commandNo description available.
environmentVariablesProcess.environmentVariables commandNo description available.
workingDirectoryProcess.workingDirectory path commandNo description available.
environmentProcess.environment name value commandNo description available.
removeEnvironmentProcess.removeEnvironment name commandNo description available.
encodingProcess.encoding value commandNo description available.
successCodesProcess.successCodes values commandNo description available.
timeoutProcess.timeout after commandBounds one stage from successful native launch to direct exit; use overallTimeout to include drainage.
withoutTimeoutProcess.withoutTimeout commandNo description available.
mapFinalCommandProcess.mapFinalCommand transform specificationChanges settings on the unique final command; executable and arguments must remain unchanged.
stageDefaultsProcess.stageDefaults defaults sourceSupplies topology-wide fallbacks, including future stages.
overallTimeoutProcess.overallTimeout after sourceBounds the topology from launch through drain and completion-aware consumer callbacks.
drainTimeoutProcess.drainTimeout after sourceBounds remaining I/O and sink completion after every managed stage exits.
Compose commands
ofCommandProcess.ofCommand commandNo description available.
connectProcess.connect both next sourceNo description available.
pipeProcess.pipe next sourceNo description available.
pipeStdoutAndStderrProcess.pipeStdoutAndStderr next sourceNo description available.
mergeSpecificationsProcess.mergeSpecifications specificationsNo description available.
mergeStdoutProcess.mergeStdout sourcesNo description available.
mergeStderrProcess.mergeStderr sourceNo description available.
Route input and output
stdinFromProcess.stdinFrom source commandConfigures root input; an explicit source conflicts with a pipe feeding this command.
stdoutToProcess.stdoutTo target commandConfigures a destination independently of capture; explicit destinations conflict with piping this channel.
stderrToProcess.stderrTo target commandConfigures separate stderr routing; merged stderr uses the final stdout destination.
stdoutToConsoleProcess.stdoutToConsole commandNo description available.
stdoutToFileProcess.stdoutToFile path commandNo description available.
stdoutToAppendFileProcess.stdoutToAppendFile path commandNo description available.
stdoutToDiscardProcess.stdoutToDiscard commandNo description available.
stdoutToInheritHandlesProcess.stdoutToInheritHandles commandNo description available.
stderrToConsoleProcess.stderrToConsole commandNo description available.
stderrToFileProcess.stderrToFile path commandNo description available.
stderrToAppendFileProcess.stderrToAppendFile path commandNo description available.
stderrToDiscardProcess.stderrToDiscard commandNo description available.
stderrToInheritHandlesProcess.stderrToInheritHandles commandNo description available.
stdinFromTextProcess.stdinFromText text commandNo description available.
stdinFromBytesProcess.stdinFromBytes bytes commandNo description available.
stdinFromFileProcess.stdinFromFile path commandNo description available.
stdinFromInheritHandlesProcess.stdinFromInheritHandles commandNo description available.
Capture output
setCaptureProcess.setCapture stderr policy specificationNo description available.
captureAllProcess.captureAll sourceRetains all final stdout bytes; stderr and destinations are unchanged.
captureTailProcess.captureTail size sourceRetains the last size bytes of final stdout.
captureNothingProcess.captureNothing sourceOmits the stdout transcript while retaining live routing, observation and stderr diagnostics.
captureStderrAllProcess.captureStderrAll sourceRetains complete readable unmerged stderr for every stage.
captureStderrTailProcess.captureStderrTail size sourceBounds each readable unmerged stderr transcript in bytes.
captureStderrNothingProcess.captureStderrNothing sourceOmits readable unmerged stderr transcripts, including diagnostic tails.
Operations
toSpecificationProcess.toSpecification sourceNo description available.
acceptedExitCodesProcess.acceptedExitCodes commandNo description available.
framingProcess.framing value sourceNo description available.
maxLineLengthProcess.maxLineLength value sourceNo description available.
maxOutputBytesProcess.maxOutputBytes stdout stderr sourceFails and terminates the topology when either original output channel exceeds its byte limit.
createOutputStreamProcess.createOutputStream requestedChannel specificationNo description available.
Execute workflows
serviceProcess.service No description available.
toFlowSpecificationProcess.toFlowSpecification specificationNo description available.
toFlowProcess.toFlow sourceNo description available.
unwrapRunProcess.unwrapRun _arg1No description available.
runProcess.run sourceRuns with live services and returns the value; raises ProcessRunException on failure.
runWithProcess.runWith environment sourceRuns with supplied services and returns the value; raises ProcessRunException on failure.
tryRunProcess.tryRun sourceRuns with live services and returns Exit, including typed failures and interruptions.
tryRunWithProcess.tryRunWith environment sourceRuns with supplied services and returns Exit without raising on workflow failure.
Inspect plans
renderProcess.render sourceNo description available.
planSpecificationProcess.planSpecification specificationNo description available.
planProcess.plan sourceNo description available.
renderPlanProcess.renderPlan planRenders a plan as short lines: the command pipeline, then one line per stage.
Stream output
streamOutputsProcess.streamOutputs sourceObserves all readable unconnected output channels, preserving originating channel metadata.
streamStdoutProcess.streamStdout sourceObserves final effective stdout chunks; explicitly merged stderr is included.
streamStderrProcess.streamStderr sourceObserves readable unmerged stderr chunks from every stage.
lineStreamProcess.lineStream requested sourceNo description available.
streamStdoutLinesProcess.streamStdoutLines sourceObserves final stdout lines without LF or CRLF terminators; stderr stays separate by default.
streamStderrLinesProcess.streamStderrLines sourceObserves readable unmerged stderr lines from every stage.
Provide and test the host
liveProcess.live No description available.
createHostProcess.createHost consoleNo description available.
liveHostProcess.liveHost No description available.
testProcess.test ()No description available.

Create commands

Turn templates or argument lists into immutable command descriptions.

kind:member

commandArgs

Process.commandArgs fileName arguments
Member
Creates a one-command process specification from an executable and already-separated arguments. Example: Process.commandArgs "git" [ "status"; "--short" ] |> Process.toFlow

Parameters

NameTypeDescription
fileNamestring
argumentsstring list

Returns

ProcessCommand
kind:member

command

Process.command commandLine
Member
Creates a safely tokenized one-command process specification from an interpolated command template. Each interpolation hole is one native argument. Example: Process.command $"git show {revision}" |> Process.toFlow

Parameters

NameTypeDescription
commandLineFormattableString

Returns

ProcessCommand
kind:member

commandText

Process.commandText commandLine
Member
Creates a safely tokenized one-command process specification from fixed command text.

Parameters

NameTypeDescription
commandLinestring

Returns

ProcessCommand
kind:member

fileName

Process.fileName command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

string
kind:member

arguments

Process.arguments command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

string list
kind:member

arg

Process.arg value command
Member

Parameters

NameTypeDescription
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

secretArg

Process.secretArg value command
Member

Parameters

NameTypeDescription
valuestring
commandProcessCommand

Returns

ProcessCommand

Configure execution

Set stage defaults, environment, working directory, timeouts, and success codes before running.

kind:member

tryWorkingDirectory

Process.tryWorkingDirectory command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

string option
kind:member

environmentVariables

Process.environmentVariables command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

Map<string, string option>
kind:member

workingDirectory

Process.workingDirectory path command
Member

Parameters

NameTypeDescription
pathstring
commandProcessCommand

Returns

ProcessCommand
kind:member

environment

Process.environment name value command
Member

Parameters

NameTypeDescription
namestring
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

removeEnvironment

Process.removeEnvironment name command
Member

Parameters

NameTypeDescription
namestring
commandProcessCommand

Returns

ProcessCommand
kind:member

encoding

Process.encoding value command
Member

Parameters

NameTypeDescription
valueEncoding
commandProcessCommand

Returns

ProcessCommand
kind:member

successCodes

Process.successCodes values command
Member

Parameters

NameTypeDescription
valuesint seq
commandProcessCommand

Returns

ProcessCommand
kind:member

timeout

Process.timeout after command
Member
Bounds one stage from successful native launch to direct exit; use overallTimeout to include drainage.

Parameters

NameTypeDescription
afterTimeSpan
commandProcessCommand

Returns

ProcessCommand
kind:member

withoutTimeout

Process.withoutTimeout command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

mapFinalCommand

Process.mapFinalCommand transform specification
Member
Changes settings on the unique final command; executable and arguments must remain unchanged.

Parameters

NameTypeDescription
transformProcessCommand -> ProcessCommand
specificationProcessSpec

Returns

ProcessSpec
kind:member

stageDefaults

Process.stageDefaults defaults source
Member
Supplies topology-wide fallbacks, including future stages. Explicit command settings always win.

Parameters

NameTypeDescription
defaultsStageDefaults
source^a

Returns

ProcessSpec
kind:member

overallTimeout

Process.overallTimeout after source
Member
Bounds the topology from launch through drain and completion-aware consumer callbacks.

Parameters

NameTypeDescription
afterTimeSpan
source^a

Returns

ProcessSpec
kind:member

drainTimeout

Process.drainTimeout after source
Member
Bounds remaining I/O and sink completion after every managed stage exits.

Parameters

NameTypeDescription
afterTimeSpan
source^a

Returns

ProcessSpec

Compose commands

Connect commands into process topologies and combine independent specifications.

kind:member

ofCommand

Process.ofCommand command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessSpec
kind:member

connect

Process.connect both next source
Member

Parameters

NameTypeDescription
bothbool
nextProcessSpec
sourceProcessSpec

Returns

ProcessSpec
kind:member

pipe

Process.pipe next source
Member

Parameters

NameTypeDescription
next^a
source^b

Returns

ProcessSpec
kind:member

pipeStdoutAndStderr

Process.pipeStdoutAndStderr next source
Member

Parameters

NameTypeDescription
next^a
source^b

Returns

ProcessSpec
kind:member

mergeSpecifications

Process.mergeSpecifications specifications
Member

Parameters

NameTypeDescription
specificationsProcessSpec list

Returns

ProcessSpec
kind:member

mergeStdout

Process.mergeStdout sources
Member

Parameters

NameTypeDescription
sources^a seq

Returns

ProcessSpec
kind:member

mergeStderr

Process.mergeStderr source
Member

Parameters

NameTypeDescription
source^a

Returns

ProcessSpec

Route input and output

Choose where each native process channel reads and writes.

kind:member

stdinFrom

Process.stdinFrom source command
Member
Configures root input; an explicit source conflicts with a pipe feeding this command.

Parameters

NameTypeDescription
sourceInputSource
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutTo

Process.stdoutTo target command
Member
Configures a destination independently of capture; explicit destinations conflict with piping this channel.

Parameters

NameTypeDescription
targetOutputTarget
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrTo

Process.stderrTo target command
Member
Configures separate stderr routing; merged stderr uses the final stdout destination.

Parameters

NameTypeDescription
targetOutputTarget
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToConsole

Process.stdoutToConsole command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToFile

Process.stdoutToFile path command
Member

Parameters

NameTypeDescription
pathstring
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToAppendFile

Process.stdoutToAppendFile path command
Member

Parameters

NameTypeDescription
pathstring
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToDiscard

Process.stdoutToDiscard command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToInheritHandles

Process.stdoutToInheritHandles command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToConsole

Process.stderrToConsole command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToFile

Process.stderrToFile path command
Member

Parameters

NameTypeDescription
pathstring
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToAppendFile

Process.stderrToAppendFile path command
Member

Parameters

NameTypeDescription
pathstring
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToDiscard

Process.stderrToDiscard command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToInheritHandles

Process.stderrToInheritHandles command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stdinFromText

Process.stdinFromText text command
Member

Parameters

NameTypeDescription
textstring
commandProcessCommand

Returns

ProcessCommand
kind:member

stdinFromBytes

Process.stdinFromBytes bytes command
Member

Parameters

NameTypeDescription
bytesbyte array
commandProcessCommand

Returns

ProcessCommand
kind:member

stdinFromFile

Process.stdinFromFile path command
Member

Parameters

NameTypeDescription
pathstring
commandProcessCommand

Returns

ProcessCommand
kind:member

stdinFromInheritHandles

Process.stdinFromInheritHandles command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand

Capture output

Retain all, a bounded tail, or none of each readable output channel.

kind:member

setCapture

Process.setCapture stderr policy specification
Member

Parameters

NameTypeDescription
stderrbool
policyOutputRetention
specificationProcessSpec

Returns

ProcessSpec
kind:member

captureAll

Process.captureAll source
Member
Retains all final stdout bytes; stderr and destinations are unchanged. Streaming can then use unbounded memory.

Parameters

NameTypeDescription
source^source

Returns

^result
kind:member

captureTail

Process.captureTail size source
Member
Retains the last size bytes of final stdout. Byte boundaries may split encoded characters.

Parameters

NameTypeDescription
sizeint
source^source

Returns

^result
kind:member

captureNothing

Process.captureNothing source
Member
Omits the stdout transcript while retaining live routing, observation and stderr diagnostics.

Parameters

NameTypeDescription
source^source

Returns

^result
kind:member

captureStderrAll

Process.captureStderrAll source
Member
Retains complete readable unmerged stderr for every stage.

Parameters

NameTypeDescription
source^source

Returns

^result
kind:member

captureStderrTail

Process.captureStderrTail size source
Member
Bounds each readable unmerged stderr transcript in bytes.

Parameters

NameTypeDescription
sizeint
source^source

Returns

^result
kind:member

captureStderrNothing

Process.captureStderrNothing source
Member
Omits readable unmerged stderr transcripts, including diagnostic tails.

Parameters

NameTypeDescription
source^source

Returns

^result

Operations

kind:member

toSpecification

Process.toSpecification source
Member

Parameters

NameTypeDescription
source^source

Returns

ProcessSpec
kind:member

acceptedExitCodes

Process.acceptedExitCodes command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

Set<int>
kind:member

framing

Process.framing value source
Member

Parameters

NameTypeDescription
valueOutputFraming
source^a

Returns

ProcessSpec
kind:member

maxLineLength

Process.maxLineLength value source
Member

Parameters

NameTypeDescription
valueint
source^a

Returns

ProcessSpec
kind:member

maxOutputBytes

Process.maxOutputBytes stdout stderr source
Member
Fails and terminates the topology when either original output channel exceeds its byte limit.

Parameters

NameTypeDescription
stdoutint64 option
stderrint64 option
source^a

Returns

ProcessSpec
kind:member

createOutputStream

Process.createOutputStream requestedChannel specification
Member

Parameters

NameTypeDescription
requestedChannelOutputChannel option
specificationProcessSpec

Returns

ProcessStream<'env, ProcessOutput>

Execute workflows

Choose lazy Flow composition or a direct script boundary.

kind:member

service

Process.service
Member

Returns

Flow<'env, 'error, IProcess>
kind:member

toFlowSpecification

Process.toFlowSpecification specification
Member

Parameters

NameTypeDescription
specificationProcessSpec

Returns

Flow<'env, ProcessError, ProcessResult>
kind:member

toFlow

Process.toFlow source
Member

Parameters

NameTypeDescription
source^a

Returns

Flow<'b, ProcessError, ProcessResult>
kind:member

unwrapRun

Process.unwrapRun _arg1
Member

Parameters

NameTypeDescription
_arg1Exit<'a, 'b>

Returns

'a
kind:member

run

Process.run source
Member
Runs with live services and returns the value; raises ProcessRunException on failure.

Parameters

NameTypeDescription
source^source

Returns

^result
kind:member

runWith

Process.runWith environment source
Member
Runs with supplied services and returns the value; raises ProcessRunException on failure.

Parameters

NameTypeDescription
environment'env
source^source

Returns

^result
kind:member

tryRun

Process.tryRun source
Member
Runs with live services and returns Exit, including typed failures and interruptions.

Parameters

NameTypeDescription
source^source

Returns

^result
kind:member

tryRunWith

Process.tryRunWith environment source
Member
Runs with supplied services and returns Exit without raising on workflow failure.

Parameters

NameTypeDescription
environment'env
source^source

Returns

^result

Inspect plans

Resolve and render a redacted execution plan without starting a process.

kind:member

render

Process.render source
Member

Parameters

NameTypeDescription
source^a

Returns

string
kind:member

planSpecification

Process.planSpecification specification
Member

Parameters

NameTypeDescription
specificationProcessSpec

Returns

ProcessPlan
kind:member

plan

Process.plan source
Member

Parameters

NameTypeDescription
source^a

Returns

ProcessPlan
kind:member

renderPlan

Process.renderPlan plan
Member
Renders a plan as short lines: the command pipeline, then one line per stage.

Parameters

NameTypeDescription
planProcessPlanA plan produced by plan.

Returns

string list

Stream output

Produce completion-aware process output streams for incremental consumption.

kind:member

streamOutputs

Process.streamOutputs source
Member
Observes all readable unconnected output channels, preserving originating channel metadata.

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, ProcessOutput>
kind:member

streamStdout

Process.streamStdout source
Member
Observes final effective stdout chunks; explicitly merged stderr is included.

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, ProcessOutput>
kind:member

streamStderr

Process.streamStderr source
Member
Observes readable unmerged stderr chunks from every stage.

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, ProcessOutput>
kind:member

lineStream

Process.lineStream requested source
Member

Parameters

NameTypeDescription
requestedOutputChannel option
sourceProcessSpec

Returns

ProcessStream<'a, string>
kind:member

streamStdoutLines

Process.streamStdoutLines source
Member
Observes final stdout lines without LF or CRLF terminators; stderr stays separate by default.

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, string>
kind:member

streamStderrLines

Process.streamStderrLines source
Member
Observes readable unmerged stderr lines from every stage.

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, string>

Provide and test the host

Create a live host or substitute the process service in tests.

kind:member

live

Process.live
Member

Returns

IClock -> IFileSystem -> IConsole -> IProcess
kind:member

createHost

Process.createHost console
Member

Parameters

NameTypeDescription
consoleIConsole

Returns

ProcessHostEnvironment
kind:member

liveHost

Process.liveHost
Member

Returns

Lazy<ProcessHostEnvironment>
kind:member

test

Process.test ()
Member

Parameters

NameTypeDescription
()unit

Returns

TestProcess