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