Skip to main content

treeboot_core/
lib.rs

1//! Core library for `treeboot`.
2//!
3//! This crate contains the reusable worktree bootstrap logic. The `treeboot`
4//! binary crate provides the command-line interface on top of this API.
5
6#![deny(missing_docs)]
7
8mod commands;
9mod config;
10mod context;
11mod discovery;
12mod error;
13mod executor;
14mod files;
15mod git;
16mod init;
17mod manual;
18mod output;
19mod run;
20mod validation;
21
22pub use context::{Environment, Worktree, WorktreeOptions};
23pub use discovery::InitScriptDiscovery;
24pub use error::Error;
25pub use executor::{ExecuteOptions, ExecutionReport, Executor};
26pub use init::{InitKind, InitOptions, InitReport, init};
27pub use manual::{
28    FileOperationAction, FileOperationCompletionOptions, FileOperationOptions, FileOperationReport,
29    ManualFileOperationOptions, file_operation_source_candidates, run_file_operation,
30};
31pub use output::{OutputEvent, Reporter};
32pub use run::{RunAction, RunOptions, RunReport, run};
33pub use validation::{
34    ActionPlan, ActionPlanOptions, PlanOrigin, PlannedCommand, PlannedFileOperation,
35    PlannedFileStatus,
36};
37
38/// Convenient result type used by `treeboot-core`.
39pub type Result<T> = std::result::Result<T, Error>;
40pub use config::{
41    CommandKind, CommandOperation, Config, ConfigOptions, ConfigReport, ConfigRuntimeOptions,
42    FileOperation, FileOperationKind, LoadedConfig, RuntimeOptionOverrides, SourceSpan,
43    SymlinkMode, SyncCompare, inspect_config,
44};
45
46/// Parsed treeboot manifest.
47pub type Manifest = Config;
48
49/// Options for inspecting a treeboot manifest.
50pub type ManifestOptions = ConfigOptions;
51
52/// Result summary for manifest inspection.
53pub type ManifestReport = LoadedConfig;
54
55/// Raw file operation intent used to build an action plan.
56pub type FileOperationSpec = FileOperation;
57
58/// Raw command intent used to build an action plan.
59pub type CommandSpec = CommandOperation;
60
61/// Resolved runtime policy from defaults, config, environment, and CLI flags.
62pub type RuntimePolicy = ConfigRuntimeOptions;