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    CommandStdin, CommandStdout, INHERIT_STDOUT_ENV_VAR, PROCESS_DEBUG_ENV_VAR, ProcessManager,
20    SharedInput, SharedOutput,
21};
22#[cfg(not(miri))]
23pub use contract::{OsPipeReader, OsPipeWriter, create_os_pipe};
24pub use expand::{StreamingExpand, expand_command_env, expand_script_env};
25pub use oxdock_sys_test_utils::TestEnvGuard;
26pub use shell::{ShellLauncher, shell_program, spawn_interactive_shell};
27pub use shell_manager::ShellProcessManager;
28
29#[cfg(feature = "mock-process")]
30pub use mock::{
31    MockHandle, MockProcessManager, MockRunArgvCall, MockRunCall, MockSpawnArgvCall, MockSpawnCall,
32    MockStreamMode,
33};
34
35#[cfg(miri)]
36pub use synthetic::{SyntheticBgHandle, SyntheticProcessManager};
37
38#[cfg(not(miri))]
39pub type DefaultProcessManager = ShellProcessManager;
40
41#[cfg(miri)]
42pub type DefaultProcessManager = SyntheticProcessManager;
43
44pub fn default_process_manager() -> DefaultProcessManager {
45    DefaultProcessManager::default()
46}