1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! `krypt-core` — the engine.
//!
//! Everything that does real work lives here, behind a stable Rust API.
//! The `krypt` binary (in `krypt-cli`) is a thin shell around this crate.
//!
//! Current modules:
//!
//! - [`config`] — `.krypt.toml` schema, parser, validator (issue #9)
//! - [`paths`] — `${VAR}` resolution with XDG defaults + platform gating
//! (issue #11)
//! - [`include`] — `include = [...]` glob expansion and config merging
//! (issue #10)
//! - [`copy`] — plan + atomic deploy of [[link]] and [[template]]
//! entries to their resolved destinations (issue #12)
//! - [`manifest`] — versioned record of what was deployed, with sha256
//! hashes for drift detection (issue #13)
//! - [`deploy`] — high-level link / unlink / relink orchestration
//! over the other modules (issue #15)
//! - [`tool_config`] — `${XDG_CONFIG}/krypt/config.toml` schema + I/O
//! (issue #14)
//! - [`init`] — `krypt init` orchestration: clone + write tool config
//! (issue #14)
//! - [`update`] — `krypt update` orchestration: pull repo + re-deploy
//! (issue #17)
//! - [`adopt`] — `krypt adopt` / `krypt adopt-edits`: import existing
//! dotfiles into the repo and sync in-place edits back (issue #16)
//! - [`doctor`] — `krypt doctor` diagnostic health-check: prints one
//! status line per check and serializes to JSON for `--json` (issue #20)
//!
//! - [`setup`] — `krypt setup` interactive wizard: reads `[prompts]`
//! sections, asks questions, and applies one of four built-in writers
//! (gitconfig, hypr_vars, env, generic_template) (issue #18).
//! - [`runner`] — step runner DSL: executes a `Vec<Step>` from a
//! `[[command]]` or `[[hook]]` declaratively, with injected process,
//! notifier, and prompter dependencies (issue #23).
//! - [`predicate`] — predicate grammar + evaluator for `if =` conditions:
//! `command_exists`, `env`, `platform`, `file_exists`, negation (`!`), and
//! AND (`,`). [`predicate::default_predicate_evaluator`] wires a
//! [`predicate::PredicateEnv`] into the runner's closure parameter
//! (issue #24).
//! - [`notify`] — cross-platform notification backends: `notify-send`
//! (Linux), `osascript` / `terminal-notifier` (macOS), PowerShell
//! (Windows), with `stderr` fallback. [`notify::AutoNotifier`] implements
//! the [`runner::Notifier`] trait and replaces the old `RealNotifier` stub
//! (issue #26).
//! - [`dispatch`] — generic `krypt <group> <name>` dispatcher: list and run
//! `[[command]]` entries from `.krypt.toml` for any group. Renamed from
//! `menu` in issue #45; `krypt menu` is now `dispatch::run_in_group("menu", …)`.
//! - [`battery`] — cross-platform battery state reader: `LinuxSysfsReader`
//! (Linux), `UnsupportedReader` (macOS/Windows stub). Used by
//! `krypt battery {report,log,clear}` (issue #28).
pub use ;
/// Crate version, exposed for `krypt --version` aggregation.
pub const VERSION: &str = env!;