Expand description
Copy engine — deploy files from the repo to $HOME.
The engine works in two phases:
- Plan — pure, no I/O for writes. Walks a
Config’s[[link]]and[[template]]entries, expands globs, applies${VAR}resolution to destinations, and skips entries that don’t match the current platform. Returns aPlanwhich is aVec<Action>ofCopy/Conflictitems the caller can inspect or print. - Execute — performs the planned copies atomically, preserving the source’s mtime + (on Unix) file mode.
What’s deferred:
- Manifest-aware idempotency — the executor records hashes via
crate::manifestbut the planner still classifies any existing destination as aAction::Conflict. Issue #15 (krypt link) will compare against the manifest to narrow safe re-deploys. - Interactive prompts for conflicts — issue #15 wires the CLI on top.
Structs§
- Exec
Opts - Knobs for
execute. - Plan
- A list of
Actions to perform (or print, in dry-run mode). - Report
- What
executeactually did. - Written
- One file the executor wrote — surfaced so callers can update the
deployment manifest (see
crate::manifest).
Enums§
- Action
- What the engine intends to do for one (src, dst) pair.
- Entry
Kind - Which schema section an action came from.
- Exec
Error - Errors executing a
Plan. - Plan
Error - Errors building a
Planfrom a Config.