Runner Module
The run verbs, expressed over any `IProcessRunner`. One verb, one meaning: - `run` — require a zero exit; return stdout, trailing whitespace trimmed. - `outputString` / `outputBytes` — the full `ProcessResult`; a non-zero exit is data. - `exitCode` — the exit code; a signal kill or timeout errors instead of inventing one. - `probe` — read the exit code as a yes/no: 0 -> true, 1 -> false, anything else errors.
Functions and values
| Function or value |
Description
|
Full Usage:
Runner.exitCode runner cancellationToken command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
command : Command
Returns: Task<Result<int, ProcessError>>
|
The exit code. A signal kill or timeout errors instead of inventing a sentinel code.
|
Full Usage:
Runner.firstLine runner cancellationToken predicate command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
predicate : string -> bool
command : Command
Returns: Task<Result<string option, ProcessError>>
|
The first stdout line satisfying `predicate`, or `None` if stdout closes without a match.
|
Full Usage:
Runner.outputBytes runner cancellationToken command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
command : Command
Returns: Task<Result<ProcessResult<byte[]>, ProcessError>>
|
Run to completion, capturing stdout as raw bytes.
|
Full Usage:
Runner.outputJson runner cancellationToken options command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
options : JsonSerializerOptions option
command : Command
Returns: Task<Result<'T, ProcessError>>
Type parameters: 'T |
Require a zero/accepted exit and deserialize the trimmed stdout as JSON into a `'T` via `System.Text.Json` (`options = None` uses the BCL defaults); invalid JSON becomes `ProcessError.Parse`, exactly like `parse`/`tryParse` — never a raised exception. Applied once, outside any retry (see `parse`'s doc for why). **Trimming / AOT:** deserializes via reflection-based `System.Text.Json` (`JsonSerializer.Deserialize(string, Type, JsonSerializerOptions)`), so it is not trim-/AOT-safe — pass `options` with a source-generated `JsonSerializerContext`/`JsonTypeInfo<'T>` resolver, or avoid this verb, in a trimmed/NativeAOT app.
|
Full Usage:
Runner.outputString runner cancellationToken command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
command : Command
Returns: Task<Result<ProcessResult<string>, ProcessError>>
|
Run to completion, capturing stdout as decoded text. A non-zero exit is data, not an error.
|
Full Usage:
Runner.parse runner cancellationToken parser command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
parser : string -> 'T
command : Command
Returns: Task<Result<'T, ProcessError>>
Type parameters: 'T |
Require a zero exit and parse the trimmed stdout into a `'T`; a thrown parser error becomes `ProcessError.Parse`.
|
Full Usage:
Runner.probe runner cancellationToken command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
command : Command
Returns: Task<Result<bool, ProcessError>>
|
Read the exit code as a yes/no answer: 0 -> true, 1 -> false, anything else errors.
|
Full Usage:
Runner.run runner cancellationToken command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
command : Command
Returns: Task<Result<string, ProcessError>>
|
Require a zero exit and return stdout with trailing whitespace trimmed.
|
Full Usage:
Runner.runUnit runner cancellationToken command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
command : Command
Returns: Task<Result<unit, ProcessError>>
|
Like `run`, but discard the captured output.
|
Full Usage:
Runner.start runner cancellationToken command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
command : Command
Returns: Task<Result<RunningProcess, ProcessError>>
|
Start the command and return a live `RunningProcess` for streaming and interactive I/O.
|
Full Usage:
Runner.tryParse runner cancellationToken parser command
Parameters:
IProcessRunner
cancellationToken : CancellationToken
parser : string -> Result<'T, string>
command : Command
Returns: Task<Result<'T, ProcessError>>
Type parameters: 'T |
Like `parse`, but the parser returns its own `Result` (its error message — or a thrown exception's message — becomes `ProcessError.Parse`).
|
ProcessKit API Reference