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 check;
9mod commands;
10mod config;
11mod context;
12mod discovery;
13mod doctor;
14mod env;
15mod error;
16mod executor;
17mod file_actions;
18mod file_execution;
19mod file_operations;
20mod file_planning;
21mod file_system;
22mod git;
23mod init;
24mod manual;
25mod metadata;
26mod output;
27mod path_filter;
28mod paths;
29mod run;
30mod runtime;
31mod status;
32#[cfg(test)]
33mod test_support;
34mod validation;
35
36pub use check::{CheckAction, CheckOptions, CheckReport, WorktreeSnapshot, check};
37pub use context::{Environment, EnvironmentInput, Worktree, WorktreeOptions};
38pub use discovery::{IgnoredInitScript, InitScriptDiscovery};
39pub use doctor::{Diagnostic, DiagnosticStatus, DoctorOptions, DoctorReport, diagnose};
40pub use env::{EnvOptions, EnvReport, inspect_env};
41pub use error::Error;
42pub use executor::{ExecuteOptions, ExecutionReport, Executor};
43pub use init::{InitKind, InitOptions, InitReport, init};
44pub use manual::{
45    FileOperationAction, FileOperationCompletionOptions, FileOperationOptions, FileOperationReport,
46    ManualFileOperationOptions, file_operation_source_candidates, run_file_operation,
47};
48pub use metadata::{
49    SPEC_VERSION, TREEBOOT_PACKAGE, TREEBOOT_VERSION, VersionInfo, config_schema_json,
50    treeboot_version_info, treeboot_version_summary, version_info,
51};
52pub use output::{FileOperationSummary, OutputEvent, Reporter};
53pub use run::{RunAction, RunOptions, RunReport, run};
54pub use runtime::{ResolvedRuntimePolicy, RuntimeOptionOverrides, RuntimePolicy};
55pub use status::{
56    InitScriptStatus, StatusOptions, StatusReport, StatusSnapshotReport, inspect_status,
57    inspect_status_snapshot,
58};
59pub use validation::{
60    ActionPlan, ActionPlanOptions, PlanOrigin, PlanWarning, PlannedCommand, PlannedFileOperation,
61    PlannedFileStatus,
62};
63
64/// Convenient result type used by `treeboot-core`.
65pub type Result<T> = std::result::Result<T, Error>;
66pub use config::{
67    CommandKind, CommandOperation, Config, ConfigOptions, ConfigReport, ConfigRuntimeOptions,
68    FileOperation, FileOperationKind, LoadedConfig, MetadataField, SourceSpan, SymlinkMode,
69    SyncCompare, inspect_config,
70};
71
72/// Parsed treeboot manifest.
73pub type Manifest = Config;
74
75/// Options for inspecting a treeboot manifest.
76pub type ManifestOptions = ConfigOptions;
77
78/// Result summary for manifest inspection.
79pub type ManifestReport = LoadedConfig;
80
81/// Raw file operation intent used to build an action plan.
82pub type FileOperationSpec = FileOperation;
83
84/// Raw command intent used to build an action plan.
85pub type CommandSpec = CommandOperation;