Skip to content

rc-preflight.sh

Report Oliver renderer availability and compatibility

Browse Docs pages

Overview

Report Oliver renderer availability and compatibility

Source: bones/scripts/rc-preflight.sh.

Usage

rotkeeper.sh preflight [options]

Options

--verbose        Show detailed findings
--dry-run        Report the check without invoking the Oliver binary
--help, -h       Show this help message and exit
--version, -v    Show script version and quit

Examples

bash rotkeeper.sh preflight              # Verify rendering is ready
bash rotkeeper.sh preflight --verbose    # Show discovery details

Exit codes

0    Rendering ready
1    Renderer missing or unusable (with one actionable setup message)

Reads and writes

Environment: reads DRY_RUN, OLIVER_BIN, RK_OLIVER_BIN, SCRIPT_DIR, TMP_DIR, VERSION (canonical via rc-env.sh / rk_load_env); overrides RK_OLIVER_BIN, RK_RENDERER, ROTKEEPER_VERSION when set.

Working directory: No CWD assumption โ€” all paths are root-relative via ROOT_DIR/BONES_DIR/CONTENT_DIR/etc. derived from rc-env.sh; helpers rk_canonical_path/rk_canonical_or_raw resolve symlinks/portably.

Inputs and outputs: discovers Oliver using RK_OLIVER_BIN then PATH, checks executability, and smoke-renders through the real CLI with the configured input format and HTML/XHTML profile. Nonzero or empty render output fails with an actionable setup message. The shared check also gates render. Real runs create and remove TMP_DIR/oliver-preflight-smoke.md, .html, and .log; dry-run skips binary invocation. See home/content/docs/oliver-contract.md.

Side effects

No side effects are documented in script annotations.

Notes

Design

The command delegates discovery and the live smoke render to rk_oliver_preflight in rc-utils.sh. render uses the same helper, so both commands report the same discovery and smoke-render failures.

An explicit RK_OLIVER_BIN takes precedence over oliver on PATH. The helper invokes the configured input format and adds --to xhtml only for the site's XHTML profile. It requires a zero exit status and nonempty output. See the Oliver contract.

Limits

The smoke input is a single heading, not a content or template audit. Passing does not test meta, plan, wrap, or manifest, validate the installed commit, or prove that every page can render.

--dry-run skips the helper entirely and returns success with a skipped-check message. It does not establish that Oliver is present or usable.

Cautions

A non-executable explicit override fails instead of falling back to PATH. Check the override first when discovery fails.

A live check writes and then removes oliver-preflight-smoke.md, .html, and .log under TMP_DIR. These names are shared between invocations, not unique to a process. Shared bootstrap logging also writes a run log, including during --dry-run; help and version exit before that bootstrap.

History

No matching entries in CHANGELOG.md.