Skip to content

rc-status.sh

Output a structured, human-readable status report across environment, health, and pulse.

Browse Docs pages

Overview

Output a structured, human-readable status report across environment, health, and pulse.

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

Usage

rotkeeper.sh status [options]

Options

--json         Emit a machine-readable JSON report
--short        One-line summary (version | pages | freshness | branch)
--dry-run      No-op flag accepted for contract consistency
--verbose      Detailed output
--help, -h     Show help
--version, -v  Show version and quit

Examples

bash rotkeeper.sh status           # Full health report
bash rotkeeper.sh status --short   # One-line summary
bash rotkeeper.sh status --json    # Machine-readable report

Exit codes

0         Success
nonzero   Environment error

Reads and writes

Environment: reads ARCHIVE_DIR, BONES_DIR, BOOK_REPORT_DIR, CONFIG_DIR, CONTENT_DIR, DOCS_DIR, LOG_DIR, LOG_FILE, OUTPUT_DIR, ROOT_DIR, ROTKEEPER_VERSION, SCRIPT_DIR, TMP_DIR, VERBOSE, 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: reads version/configuration, Git context, scripts, content, output, archives, and book reports. Requires Bash, jq, and yq v4. Apart from its run log, it does not mutate the workspace. Reports environment/version provenance, script syntax health, binder exports, releases, recent archives, per-format content counts, render freshness, and configuration. Freshness compares source/HTML mtimes and reports current, stale, or empty output. Default output is a human-readable report; --short emits version/pages/freshness/branch on one line and --json emits the same sections as JSON. Restores caller stdout/stderr after bootstrap so quiet mode does not hide the report; colors respect NO_COLOR.

Side effects

Notes

Design

Reports version provenance, caller working directory and Git context, script inventory, bound-book sizes, release ZIPs, recent tarballs, content counts, render freshness, and selected configuration fields. Restores the caller’s output streams after shared bootstrap so reports remain visible. Short mode emits a single summary; JSON mode emits the full section data. Reporting writes a run log but does not generate content or repair state.

Limits

Script health assigns the loaded canonical version to each discovered script; it does not execute script versions or run Bash syntax checks. Freshness compares the newest source mtime with the newest HTML mtime, not each source/output pair, templates, or assets. Stub/draft counts use literal status-line matches. Missing Git context becomes [no git] in human output and null fields in JSON, not a fatal Git dependency failure.

Cautions

An “output is current” result is a coarse freshness heuristic, not proof that every page exists or matches its source. Git queries use the caller’s working directory, and release discovery uses a root-relative path, so run from the repository root for repository-wide results. --dry-run is a no-op report flag and does not suppress logging. --json takes precedence over --short when both are supplied.

History

No matching entries in CHANGELOG.md.