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