Run a command
Declare a program, build its argument vector, run it, and read the result; meet the three ways a run can fail; and hold a running child when the caller must decide when it stops.
Documentation · Guides
Each guide walks through one task end to end. Read them in order the first time; every example was run against the release it documents.
Declare a program, build its argument vector, run it, and read the result; meet the three ways a run can fail; and hold a running child when the caller must decide when it stops.
Capture, echo, per-line callbacks, lines streamed as they arrive, a heartbeat for a quiet child, a sink that goes away, a stream sent to a file or the parent, and byte-exact capture.
Feed standard input from memory or a streaming producer, overlay or replace the environment, set a deadline that tears the child down cleanly, and reclaim the descendants it leaves behind.
Join commands stage to stage, find the stage that failed, and run independent commands side by side.
Name the programs an application may run, and wrap argument construction in small, validated builders.
Narrow what a block of code may run, bind a program to the executable it should run, and run code around every command.
Structured logs, metrics, and traces from every run, the settled outcome, redaction for secrets, control operations, and output framed for GitHub Actions.
The first thing to check for each common outcome, from an unknown program to a missing speed-up.
The changes an application using Cuprum 0.1 meets on upgrade, each with its fix, then what 0.2.0 adds and how to adopt each part.