Skip to main content

grex_core/
lib.rs

1//! grex-core — manifest, lockfile, scheduler, pack model, plugin traits.
2//!
3//! M2 lands: manifest event log + lockfile + atomic file primitives.
4
5#![deny(unsafe_code)]
6
7pub mod add;
8pub mod doctor;
9pub mod env;
10pub mod execute;
11pub mod fs;
12pub mod git;
13pub mod import;
14pub mod lockfile;
15pub mod log;
16pub mod manifest;
17pub mod pack;
18pub mod sync;
19pub mod tree;
20pub mod vars;
21
22#[doc(hidden)]
23pub use env::EnvResolver;
24pub use execute::{
25    ActionExecutor, ExecCtx, ExecError, ExecResult, ExecStep, FsExecutor, PlanExecutor, Platform,
26    PredicateOutcome, StepKind,
27};
28pub use git::{ClonedRepo, GitBackend, GitError, GixBackend};
29#[doc(hidden)]
30pub use log::{ActionLogger, LogLevel, TracingLogger};
31pub use pack::{
32    run_all, Action, ChildRef, Combiner, EnvArgs, EnvScope, ExecOnFail, ExecSpec, MkdirArgs,
33    OsKind, PackManifest, PackParseError, PackType, PackValidationError, Predicate, RequireOnFail,
34    RequireSpec, RmdirArgs, SchemaVersion, SymlinkArgs, SymlinkKind, UnlinkArgs, Validator,
35    WhenSpec,
36};
37pub use tree::{
38    build_ls_tree, dest_has_git_repo, synthesize_plain_git_manifest, EdgeKind, FsPackLoader,
39    LsNode, LsNodeError, LsTree, PackGraph, PackLoader, PackNode, TreeError, Walker,
40};
41pub use vars::{expand, VarEnv, VarExpandError};
42
43pub mod scheduler;
44
45pub use scheduler::{Cancelled, Scheduler};
46
47pub mod pack_lock;
48
49pub use pack_lock::{PackLock, PackLockError, Tier, PACK_LOCK_FILE_NAME};
50
51pub mod plugin;
52
53pub use plugin::{
54    register_builtins, ActionPlugin, EnvPlugin, ExecPlugin, MkdirPlugin, Registry, RequirePlugin,
55    RmdirPlugin, SymlinkPlugin, UnlinkPlugin, WhenPlugin,
56};