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 status;
21mod validation;
22
23pub use context::{Environment, Worktree, WorktreeOptions};
24pub use discovery::InitScriptDiscovery;
25pub use error::Error;
26pub use executor::{ExecuteOptions, ExecutionReport, Executor};
27pub use init::{InitKind, InitOptions, InitReport, init};
28pub use manual::{
29    FileOperationAction, FileOperationCompletionOptions, FileOperationOptions, FileOperationReport,
30    ManualFileOperationOptions, file_operation_source_candidates, run_file_operation,
31};
32pub use output::{OutputEvent, Reporter};
33pub use run::{RunAction, RunOptions, RunReport, run};
34pub use status::{InitScriptStatus, StatusOptions, StatusReport, inspect_status};
35pub use validation::{
36    ActionPlan, ActionPlanOptions, PlanOrigin, PlannedCommand, PlannedFileOperation,
37    PlannedFileStatus,
38};
39
40/// Convenient result type used by `treeboot-core`.
41pub type Result<T> = std::result::Result<T, Error>;
42pub use config::{
43    CommandKind, CommandOperation, Config, ConfigOptions, ConfigReport, ConfigRuntimeOptions,
44    FileOperation, FileOperationKind, LoadedConfig, RuntimeOptionOverrides, SourceSpan,
45    SymlinkMode, SyncCompare, inspect_config,
46};
47
48/// Parsed treeboot manifest.
49pub type Manifest = Config;
50
51/// Options for inspecting a treeboot manifest.
52pub type ManifestOptions = ConfigOptions;
53
54/// Result summary for manifest inspection.
55pub type ManifestReport = LoadedConfig;
56
57/// Raw file operation intent used to build an action plan.
58pub type FileOperationSpec = FileOperation;
59
60/// Raw command intent used to build an action plan.
61pub type CommandSpec = CommandOperation;
62
63/// Resolved runtime policy from defaults, config, environment, and CLI flags.
64pub type RuntimePolicy = ConfigRuntimeOptions;