DSLModule

PackageAxial.Process

Command DSL

The Axial.Process.DSL module offers short names and operators for constructing process specifications. Open it when command-shaped syntax reads better:

open Axial.Process.DSL

let countLines =
    cmd $"printf 'one\\ntwo\\n'"
    => cmd $"wc -l"

cmd tokenizes an interpolated template without invoking a shell. Each interpolation value remains one native argument. => connects stdout to the next command's stdin. Shells are explicit: use bash, sh, or pwsh when shell syntax is actually needed.

The DSL functions are aliases for the corresponding Process operations; they do not change execution semantics. Use cmdText for fixed text that should be tokenized, or Process.commandArgs when the executable and arguments are already separate values.

See Commands and composition for the short path and Scripts and shell syntax for command-line programs.

Summary

NameSignatureSynopsis
Construct commands
cmdcmd templateNo description available.
cmdTextcmdText textNo description available.
secretsecret valueNo description available.
Connect commands
(=>)source => destinationNo description available.
pipepipe commandLinesNo description available.
pipeTopipeTo next sourceNo description available.
pipeStdoutAndStderrTopipeStdoutAndStderrTo next sourceNo description available.
Invoke a shell explicitly
bashbash programBuilds a Bash program with interpolation values passed as positional arguments.
shsh programBuilds a POSIX shell program with interpolation values passed as positional arguments.
pwshpwsh programBuilds a PowerShell 7 program with interpolation values passed through <c>$args</c>.
bashTextbashText programBuilds an explicitly assembled Bash program.
shTextshText programBuilds an explicitly assembled POSIX shell program.
pwshTextpwshText programBuilds an explicitly assembled PowerShell 7 program.
Configure stages
cwdcwd path commandNo description available.
envenv name value commandNo description available.
timeouttimeout value commandNo description available.
withoutTimeoutwithoutTimeout commandNo description available.
framingframing value sourceNo description available.
maxLineLengthmaxLineLength value sourceNo description available.
stageDefaultsstageDefaults value sourceNo description available.
overallTimeoutoverallTimeout value sourceNo description available.
drainTimeoutdrainTimeout value sourceNo description available.
mapFinalCommandmapFinalCommand transform sourceNo description available.
Operations
maxOutputBytesmaxOutputBytes stdout stderr sourceSame as Process.maxOutputBytes.
Route process channels
stdinFromstdinFrom value commandNo description available.
stdoutTostdoutTo value commandNo description available.
stderrTostderrTo value commandNo description available.
stdoutToFilestdoutToFile value commandNo description available.
stdoutToAppendFilestdoutToAppendFile value commandNo description available.
stderrToFilestderrToFile value commandNo description available.
stderrToAppendFilestderrToAppendFile value commandNo description available.
stdinFromTextstdinFromText value commandNo description available.
stdinFromBytesstdinFromBytes value commandNo description available.
stdinFromFilestdinFromFile value commandNo description available.
stdoutToConsolestdoutToConsole commandNo description available.
stdoutToDiscardstdoutToDiscard commandNo description available.
stdoutToInheritHandlesstdoutToInheritHandles commandNo description available.
stderrToConsolestderrToConsole commandNo description available.
stderrToDiscardstderrToDiscard commandNo description available.
stderrToInheritHandlesstderrToInheritHandles commandNo description available.
stdinFromInheritHandlesstdinFromInheritHandles commandNo description available.
Capture output
captureAllcaptureAll sourceSame as Process.captureAll.
captureNothingcaptureNothing sourceSame as Process.captureNothing.
captureStderrAllcaptureStderrAll sourceSame as Process.captureStderrAll.
captureStderrNothingcaptureStderrNothing sourceSame as Process.captureStderrNothing.
captureTailcaptureTail value sourceSame as Process.captureTail.
captureStderrTailcaptureStderrTail value sourceSame as Process.captureStderrTail.
Stream process output
mergeStdoutmergeStdout sourcesNo description available.
mergeStdoutBytesmergeStdoutBytes sourcesNo description available.
streamOutputsstreamOutputs sourceNo description available.
streamStdoutstreamStdout sourceNo description available.
streamStderrstreamStderr sourceNo description available.
streamStdoutLinesstreamStdoutLines sourceNo description available.
streamStderrLinesstreamStderrLines sourceNo description available.
mergeStderrmergeStderr sourceNo description available.
Execute and combine
toFlowtoFlow sourceNo description available.
captureParallelSpecificationscaptureParallelSpecifications maximumConcurrency commandsNo description available.
captureParallelcaptureParallel maximumConcurrency commandsCaptures independent commands or specs with bounded workflow concurrency, preserving input order.

Construct commands

Tokenize command templates or fixed text without implicitly invoking a shell.

kind:member

cmd

cmd template
Member

Parameters

NameTypeDescription
templateFormattableString

Returns

ProcessCommand
kind:member

cmdText

cmdText text
Member

Parameters

NameTypeDescription
textstring

Returns

ProcessCommand
kind:member

secret

secret value
Member

Parameters

NameTypeDescription
value'a

Returns

SecretArgument

Connect commands

Build process pipelines from commands or specifications.

kind:member

(=>)

source => destination
Member

Parameters

NameTypeDescription
source^source
destination^destination

Returns

^result
kind:member

pipe

pipe commandLines
Member

Parameters

NameTypeDescription
commandLines'a seq

Returns

ProcessSpec
kind:member

pipeTo

pipeTo next source
Member

Parameters

NameTypeDescription
next^a
source^b

Returns

ProcessSpec
kind:member

pipeStdoutAndStderrTo

pipeStdoutAndStderrTo next source
Member

Parameters

NameTypeDescription
next^a
source^b

Returns

ProcessSpec

Invoke a shell explicitly

Use a named shell when the command needs shell syntax.

kind:member

bash

bash program
Member
Builds a Bash program with interpolation values passed as positional arguments.

Parameters

NameTypeDescription
programFormattableString

Returns

ProcessCommand
kind:member

sh

sh program
Member
Builds a POSIX shell program with interpolation values passed as positional arguments.

Parameters

NameTypeDescription
programFormattableString

Returns

ProcessCommand
kind:member

pwsh

pwsh program
Member
Builds a PowerShell 7 program with interpolation values passed through <c>$args</c>.

Parameters

NameTypeDescription
programFormattableString

Returns

ProcessCommand
kind:member

bashText

bashText program
Member
Builds an explicitly assembled Bash program. Values in the text are not escaped by Axial.

Parameters

NameTypeDescription
programstring

Returns

ProcessCommand
kind:member

shText

shText program
Member
Builds an explicitly assembled POSIX shell program. Values in the text are not escaped by Axial.

Parameters

NameTypeDescription
programstring

Returns

ProcessCommand
kind:member

pwshText

pwshText program
Member
Builds an explicitly assembled PowerShell 7 program. Values in the text are not escaped by Axial.

Parameters

NameTypeDescription
programstring

Returns

ProcessCommand

Configure stages

Set command, environment, input, timeout, and output policies.

kind:member

cwd

cwd path command
Member

Parameters

NameTypeDescription
pathstring
commandProcessCommand

Returns

ProcessCommand
kind:member

env

env name value command
Member

Parameters

NameTypeDescription
namestring
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

timeout

timeout value command
Member

Parameters

NameTypeDescription
valueTimeSpan
commandProcessCommand

Returns

ProcessCommand
kind:member

withoutTimeout

withoutTimeout command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

framing

framing value source
Member

Parameters

NameTypeDescription
valueOutputFraming
source^a

Returns

ProcessSpec
kind:member

maxLineLength

maxLineLength value source
Member

Parameters

NameTypeDescription
valueint
source^a

Returns

ProcessSpec
kind:member

stageDefaults

stageDefaults value source
Member

Parameters

NameTypeDescription
valueStageDefaults
source^a

Returns

ProcessSpec
kind:member

overallTimeout

overallTimeout value source
Member

Parameters

NameTypeDescription
valueTimeSpan
source^a

Returns

ProcessSpec
kind:member

drainTimeout

drainTimeout value source
Member

Parameters

NameTypeDescription
valueTimeSpan
source^a

Returns

ProcessSpec
kind:member

mapFinalCommand

mapFinalCommand transform source
Member

Parameters

NameTypeDescription
transformProcessCommand -> ProcessCommand
sourceProcessSpec

Returns

ProcessSpec

Operations

kind:member

maxOutputBytes

maxOutputBytes stdout stderr source
Member
Same as Process.maxOutputBytes.

Parameters

NameTypeDescription
stdoutint64 option
stderrint64 option
source^a

Returns

ProcessSpec

Route process channels

Supply stdin and direct stdout or stderr to destinations.

kind:member

stdinFrom

stdinFrom value command
Member

Parameters

NameTypeDescription
valueInputSource
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutTo

stdoutTo value command
Member

Parameters

NameTypeDescription
valueOutputTarget
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrTo

stderrTo value command
Member

Parameters

NameTypeDescription
valueOutputTarget
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToFile

stdoutToFile value command
Member

Parameters

NameTypeDescription
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToAppendFile

stdoutToAppendFile value command
Member

Parameters

NameTypeDescription
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToFile

stderrToFile value command
Member

Parameters

NameTypeDescription
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToAppendFile

stderrToAppendFile value command
Member

Parameters

NameTypeDescription
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

stdinFromText

stdinFromText value command
Member

Parameters

NameTypeDescription
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

stdinFromBytes

stdinFromBytes value command
Member

Parameters

NameTypeDescription
valuebyte array
commandProcessCommand

Returns

ProcessCommand
kind:member

stdinFromFile

stdinFromFile value command
Member

Parameters

NameTypeDescription
valuestring
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToConsole

stdoutToConsole command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToDiscard

stdoutToDiscard command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stdoutToInheritHandles

stdoutToInheritHandles command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToConsole

stderrToConsole command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToDiscard

stderrToDiscard command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stderrToInheritHandles

stderrToInheritHandles command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand
kind:member

stdinFromInheritHandles

stdinFromInheritHandles command
Member

Parameters

NameTypeDescription
commandProcessCommand

Returns

ProcessCommand

Capture output

Choose bounded or complete capture independently for stdout and stderr.

kind:member

captureAll

captureAll source
Member
Same as Process.captureAll. Retains final stdout completely.

Parameters

NameTypeDescription
source^a

Returns

'b
kind:member

captureNothing

captureNothing source
Member
Same as Process.captureNothing. Omits stdout retention; stderr diagnostics remain.

Parameters

NameTypeDescription
source^a

Returns

'b
kind:member

captureStderrAll

captureStderrAll source
Member
Same as Process.captureStderrAll. Retains readable unmerged stderr completely.

Parameters

NameTypeDescription
source^a

Returns

'b
kind:member

captureStderrNothing

captureStderrNothing source
Member
Same as Process.captureStderrNothing. Omits stderr diagnostic retention.

Parameters

NameTypeDescription
source^a

Returns

'b
kind:member

captureTail

captureTail value source
Member
Same as Process.captureTail. Bounds final stdout retention in bytes.

Parameters

NameTypeDescription
valueint
source^a

Returns

'b
kind:member

captureStderrTail

captureStderrTail value source
Member
Same as Process.captureStderrTail. Bounds each readable unmerged stderr channel.

Parameters

NameTypeDescription
valueint
source^a

Returns

'b

Stream process output

Construct output streams and explicitly merge channels when needed.

kind:member

mergeStdout

mergeStdout sources
Member

Parameters

NameTypeDescription
sources^a seq

Returns

ProcessSpec
kind:member

mergeStdoutBytes

mergeStdoutBytes sources
Member

Parameters

NameTypeDescription
sources^a seq

Returns

ProcessSpec
kind:member

streamOutputs

streamOutputs source
Member

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, ProcessOutput>
kind:member

streamStdout

streamStdout source
Member

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, ProcessOutput>
kind:member

streamStderr

streamStderr source
Member

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, ProcessOutput>
kind:member

streamStdoutLines

streamStdoutLines source
Member

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, string>
kind:member

streamStderrLines

streamStderrLines source
Member

Parameters

NameTypeDescription
source^a

Returns

ProcessStream<'b, string>
kind:member

mergeStderr

mergeStderr source
Member

Parameters

NameTypeDescription
source^a

Returns

ProcessSpec

Execute and combine

Convert process descriptions into Flows or capture independent commands in parallel.

kind:member

toFlow

toFlow source
Member

Parameters

NameTypeDescription
source^a

Returns

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

captureParallelSpecifications

captureParallelSpecifications maximumConcurrency commands
Member

Parameters

NameTypeDescription
maximumConcurrencyint
commandsProcessSpec seq

Returns

Flow<'a, ProcessError, ProcessResult list>
kind:member

captureParallel

captureParallel maximumConcurrency commands
Member
Captures independent commands or specs with bounded workflow concurrency, preserving input order.

Parameters

NameTypeDescription
maximumConcurrencyint
commands^a seq

Returns

Flow<'b, ProcessError, ProcessResult list>