pub struct Command {
pub name: OsString,
pub arguments: Vec<OsString>,
pub inherit_environment: bool,
pub environment: HashMap<OsString, Option<OsString>>,
pub current_dir: Option<PathBuf>,
pub stdin: Option<Stdio>,
pub stdout: Option<Stdio>,
pub stderr: Option<Stdio>,
}
Expand description
A process builder, providing fine-grained control over how a new process should be spawned. Equivalent to std’s Command but allowing field access cloning and serialization.
Fields§
§name: OsString
Name of the program invoked.
arguments: Vec<OsString>
Arguments passed to the child process.
inherit_environment: bool
Controlls whether the child process will inherit the parent process’ environment.
environment: HashMap<OsString, Option<OsString>>
Environment for the child process, None
represents variables that will
not be inherited from the parent, even when inherit_environment == true
.
current_dir: Option<PathBuf>
Working directory for the child process.
stdin: Option<Stdio>
Child process’ standard input (stdin) handle, None
will use default
for invocation type.
stdout: Option<Stdio>
Child process’ standard output (stdout) handle, None
will use default
for invocation type.
stderr: Option<Stdio>
Child process’ standard error (stderr) handle, None
will use default
for invocation type.
Implementations§
Source§impl Command
Builder
impl Command
Builder
Sourcepub fn args(self, args: impl IntoIterator<Item = impl AsRef<OsStr>>) -> Self
pub fn args(self, args: impl IntoIterator<Item = impl AsRef<OsStr>>) -> Self
Adds multiple arguments to pass to the program. more
Sourcepub fn env(self, key: impl AsRef<OsStr>, val: impl AsRef<OsStr>) -> Self
pub fn env(self, key: impl AsRef<OsStr>, val: impl AsRef<OsStr>) -> Self
Inserts or updates an environment variable. more
Sourcepub fn envs(
self,
vars: impl IntoIterator<Item = (impl AsRef<OsStr>, impl AsRef<OsStr>)>,
) -> Self
pub fn envs( self, vars: impl IntoIterator<Item = (impl AsRef<OsStr>, impl AsRef<OsStr>)>, ) -> Self
Inserts or updates multiple environment variables. more
Sourcepub fn env_remove(self, key: impl AsRef<OsStr>) -> Self
pub fn env_remove(self, key: impl AsRef<OsStr>) -> Self
Removes an explicitly set environment variable and prevents inheriting it from a parent process. more
Sourcepub fn env_clear(self) -> Self
pub fn env_clear(self) -> Self
Clears all explicitly set environment variables and prevents inheriting any parent process environment variables. more
Sourcepub fn env_no_inherit(self) -> Self
pub fn env_no_inherit(self) -> Self
Prevents inheriting any parent process environment variables (like
env_clear
without clearing set envs).
Sourcepub fn current_dir(self, key: impl AsRef<Path>) -> Self
pub fn current_dir(self, key: impl AsRef<Path>) -> Self
Sets the working directory for the child process. more
Sourcepub fn stdin(self, stdin: Stdio) -> Self
pub fn stdin(self, stdin: Stdio) -> Self
Configuration for the child process’s standard input (stdin) handle. more
Source§impl Command
Setters
impl Command
Setters
Sourcepub fn add_arg(&mut self, arg: impl AsRef<OsStr>)
pub fn add_arg(&mut self, arg: impl AsRef<OsStr>)
Adds an argument to pass to the program. more
Sourcepub fn add_args(&mut self, args: impl IntoIterator<Item = impl AsRef<OsStr>>)
pub fn add_args(&mut self, args: impl IntoIterator<Item = impl AsRef<OsStr>>)
Adds multiple arguments to pass to the program. more
Sourcepub fn set_env(&mut self, key: impl AsRef<OsStr>, val: impl AsRef<OsStr>)
pub fn set_env(&mut self, key: impl AsRef<OsStr>, val: impl AsRef<OsStr>)
Inserts or updates an environment variable. more
Sourcepub fn set_envs(
&mut self,
vars: impl IntoIterator<Item = (impl AsRef<OsStr>, impl AsRef<OsStr>)>,
)
pub fn set_envs( &mut self, vars: impl IntoIterator<Item = (impl AsRef<OsStr>, impl AsRef<OsStr>)>, )
Inserts or updates multiple environment variables. more
Sourcepub fn remove_env(&mut self, key: impl AsRef<OsStr>)
pub fn remove_env(&mut self, key: impl AsRef<OsStr>)
Removes an explicitly set environment variable and prevents inheriting it from a parent process. more
Sourcepub fn set_current_dir(&mut self, path: impl AsRef<Path>)
pub fn set_current_dir(&mut self, path: impl AsRef<Path>)
Sets the working directory for the child process. more
Source§impl Command
Execution
impl Command
Execution
Sourcepub fn spawn(&self) -> Result<Child>
pub fn spawn(&self) -> Result<Child>
Behaves identical to std’s Command::spawn
.
Sourcepub fn output(&self) -> Result<Output>
pub fn output(&self) -> Result<Output>
Behaves identical to std’s Command::output
.
Sourcepub fn status(&self) -> Result<ExitStatus>
pub fn status(&self) -> Result<ExitStatus>
Behaves identical to std’s Command::status
.
Sourcepub fn to_std(&self) -> StdCommand
pub fn to_std(&self) -> StdCommand
Convert this command to a std::process::Command
.