Expand description
Preprocessing pipeline — transforms source files before handler dispatch.
Preprocessors expand files whose version-controlled source differs from the deployed artifact (templates, plists, encrypted secrets). The preprocessing phase runs before handler dispatch, producing virtual entries that downstream handlers (symlink, shell, path, install, homebrew) consume transparently.
See docs/proposals/preprocessing-pipeline.lex for the full design.
Re-exports§
pub use pipeline::PreprocessMode;
Modules§
- age
agewhole-file preprocessor — decrypts*.agefiles at deploy time.- baseline
- Per-file baseline cache for the preprocessing pipeline.
- conflict
- Dodot conflict markers — used by reverse-merge to flag ambiguous edits.
- divergence
- Drift detection for preprocessor outputs (the 4-state matrix).
- gpg
gpgwhole-file preprocessor — decrypts*.gpg(and optionally*.asc) files at deploy time.- identity
- Identity preprocessor — passes content through unchanged.
- no_
reverse - Per-file
no_reverseopt-out for the template reverse-merge. - pipeline
- Preprocessing pipeline — partitions, expands, and merges entries.
- reverse_
merge - Reverse-merge engine — propagates deployed-file edits back to the template source.
- template
- Template preprocessor — renders Jinja2-style templates via MiniJinja
through burgertocow’s
Tracker. - unarchive
- Unarchive preprocessor — extracts tar.gz archives.
Structs§
- Expanded
File - A single file produced by a preprocessor’s expansion.
- Preprocessor
Registry - Registry of available preprocessors.
- Secret
Line Range - One entry in a per-render secrets sidecar — a span of lines whose
content was produced by a
secret(...)call, paired with the reference that produced it.
Enums§
- Transform
Type - The safety model for a preprocessor’s transformation.
Traits§
- Preprocessor
- The core preprocessor abstraction.
Functions§
- build_
secret_ registry - Construct a
crate::secret::SecretRegistryfrom the per-provider[secret.providers.*]config blocks. Each enabled provider is constructed with the sharedCommandRunner(so tests can inject a mock runner) and registered. ReturnsNoneif no provider is enabled — the secrets layer treats that case as “secrets feature fully off” and templates withsecret(...)calls fail loudly. - default_
registry - The default registry used on the normal execution path.