irix: The Deploy-Engine Console Script#

Console script irix, with four subcommands:

  • irix targets – list every registered target’s name, family, and per-mode filenames.

  • irix generate [TARGET...] – render targets to disk (default: out/, both modes).

  • irix check [TARGET...] – render in memory and diff against out/ on disk (default: out/, override with --out); this is the freshness gate CI runs, so a stale out/ fails the build rather than shipping quietly out of sync with irix/data/ and irix/data/anchors/.

  • irix deploy [TARGET...] – delegate to irix.deploy.Deployer.

See Architecture: How Irix Is Put Together for how check’s render/diff loop fits the wider targets engine.

I Subcommand Handlers#

irix.cli.cmd_targets(args: Namespace) → int#

Print every registered target’s name, family, and per-mode filenames.

Returns:

The number of targets listed.

irix.cli.cmd_generate(args: Namespace) → int#

Render the selected targets and modes to --out (default: out/).

Returns:

The number of files written.

irix.cli.cmd_check(args: Namespace) → int#

Render the selected targets in memory and diff them against out/ on disk.

Prints one OK/DRIFT line per artifact, then one ORPHAN line per on-disk file no registered target renders and that is not on UNRENDERED_ALLOWLIST. This is the freshness gate: CI runs it to catch a regenerable file that was hand-edited, a palette/anchor change that was never regenerated, or an unrendered file shipping in the wheel outside the gate entirely.

Returns:

0 if every artifact matches and no orphan is found; 1 otherwise (this is also the process exit code main propagates).

irix.cli.cmd_deploy(args: Namespace) → int#

Delegate to Deployer with the selected targets.

Returns:

The number of artifacts deployed.

II Main#

irix.cli.main(*vargs: str) → None#

CLI entry point: dispatch to the selected subcommand and exit with its status.