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