pub mod background;
pub mod executor;
pub mod pipe;
pub mod policy;
pub mod process;
pub mod process_group;
pub mod runner;
pub mod stream;
pub use background::{BackgroundCommandManager, BackgroundTaskHandle, BackgroundTaskStatus};
#[cfg(feature = "dry-run")]
pub use executor::DryRunCommandExecutor;
#[cfg(feature = "exec-events")]
pub use executor::EventfulExecutor;
#[cfg(feature = "pure-rust")]
pub use executor::PureRustCommandExecutor;
pub use executor::{
CommandCategory, CommandExecutor, CommandInvocation, CommandOutput, CommandStatus,
ProcessCommandExecutor, ShellKind,
};
pub use policy::{AllowAllPolicy, CommandPolicy, WorkspaceGuardPolicy};
pub use runner::BashRunner;
pub use stream::{ReadLineResult, read_line_with_limit};
pub use pipe::{
PipeSpawnOptions, PipeStdinMode, spawn_process as spawn_pipe_process,
spawn_process_no_stdin as spawn_pipe_process_no_stdin,
spawn_process_with_options as spawn_pipe_process_with_options,
};
pub use process::{
ChildTerminator, ExecCommandSession, ProcessHandle, PtyHandles, SpawnedProcess, SpawnedPty,
collect_output_until_exit,
};
pub use process_group::{
DEFAULT_GRACEFUL_TIMEOUT_MS, GracefulTerminationResult, KillSignal, detach_from_tty,
graceful_kill_process_group, graceful_kill_process_group_default,
graceful_kill_process_group_default_async, kill_child_process_group,
kill_child_process_group_with_signal, kill_process_group, kill_process_group_by_pid,
kill_process_group_by_pid_with_signal, kill_process_group_with_signal, set_parent_death_signal,
set_process_group,
};
#[cfg(windows)]
pub use process_group::kill_process;