Skip to main content

oxdock_process/
lib.rs

1mod builder;
2pub mod builtin_env;
3mod child;
4mod contract;
5mod expand;
6#[cfg(feature = "mock-process")]
7mod mock;
8pub mod serial_cargo_env;
9mod shell;
10mod shell_manager;
11#[cfg(miri)]
12mod synthetic;
13
14pub use builder::{CommandBuilder, CommandOutput, CommandSnapshot};
15pub use builtin_env::BuiltinEnv;
16pub use child::ChildHandle;
17pub use contract::{
18    BackgroundHandle, CommandContext, CommandMode, CommandOptions, CommandResult, CommandStderr,
19    CommandStdout, ProcessManager, SharedInput, SharedOutput,
20};
21pub use expand::{expand_command_env, expand_script_env};
22pub use oxdock_sys_test_utils::TestEnvGuard;
23pub use shell::{ShellLauncher, shell_program, spawn_interactive_shell};
24pub use shell_manager::ShellProcessManager;
25
26#[cfg(feature = "mock-process")]
27pub use mock::{MockHandle, MockProcessManager, MockRunCall, MockSpawnCall, MockStreamMode};
28
29#[cfg(miri)]
30pub use synthetic::{SyntheticBgHandle, SyntheticProcessManager};
31
32#[cfg(not(miri))]
33pub type DefaultProcessManager = ShellProcessManager;
34
35#[cfg(miri)]
36pub type DefaultProcessManager = SyntheticProcessManager;
37
38pub fn default_process_manager() -> DefaultProcessManager {
39    DefaultProcessManager::default()
40}