The single seam behind every Cherry frontend (ADR 0006).
Mix tasks and the standalone binary are thin wrappers around run/1 —
verb for verb, flag for flag — so the two can never disagree.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | The command ran and failed |
| 2 | Usage error: unknown verb or bad flags |
Global flags
Every command accepts --json (machine-readable envelope on stdout) and
--verbose (extra detail for humans debugging).
Help
cherry bare, cherry help, and cherry --help print the command list;
cherry help <verb> and cherry <verb> --help print one command's doc.
Help always goes to stdout and exits 0.
Summary
Functions
@spec run([String.t()]) :: non_neg_integer()
Runs a Cherry command from raw argv and returns its exit code.
The caller decides what to do with the code: mix tasks translate nonzero
into exit({:shutdown, code}), the binary into System.halt/1.