pub struct Cmd<'a> { /* private fields */ }
Expand description
A builder object for constructing a subprocess.
A Cmd
is usually created with the cmd!
macro. The command exists
within a context of a Shell
and uses its working directory and
environment.
Example
use xshell::{Shell, cmd};
let sh = Shell::new()?;
let branch = "main";
let cmd = cmd!(sh, "git switch {branch}").quiet().run()?;
Implementations§
source§impl<'a> Cmd<'a>
impl<'a> Cmd<'a>
sourcepub fn args<I>(self, args: I) -> Cmd<'a>where
I: IntoIterator,
I::Item: AsRef<OsStr>,
pub fn args<I>(self, args: I) -> Cmd<'a>where I: IntoIterator, I::Item: AsRef<OsStr>,
Adds all of the arguments to this command.
sourcepub fn env<K: AsRef<OsStr>, V: AsRef<OsStr>>(self, key: K, val: V) -> Cmd<'a>
pub fn env<K: AsRef<OsStr>, V: AsRef<OsStr>>(self, key: K, val: V) -> Cmd<'a>
Overrides the value of the environmental variable for this command.
sourcepub fn envs<I, K, V>(self, vars: I) -> Cmd<'a>where
I: IntoIterator<Item = (K, V)>,
K: AsRef<OsStr>,
V: AsRef<OsStr>,
pub fn envs<I, K, V>(self, vars: I) -> Cmd<'a>where I: IntoIterator<Item = (K, V)>, K: AsRef<OsStr>, V: AsRef<OsStr>,
Overrides the values of specified environmental variables for this command.
sourcepub fn env_remove<K: AsRef<OsStr>>(self, key: K) -> Cmd<'a>
pub fn env_remove<K: AsRef<OsStr>>(self, key: K) -> Cmd<'a>
Removes the environment variable from this command.
sourcepub fn ignore_status(self) -> Cmd<'a>
pub fn ignore_status(self) -> Cmd<'a>
Don’t return an error if command the command exits with non-zero status.
By default, non-zero exit status is considered an error.
sourcepub fn set_ignore_status(&mut self, yes: bool)
pub fn set_ignore_status(&mut self, yes: bool)
Controls whether non-zero exit status is considered an error.
sourcepub fn quiet(self) -> Cmd<'a>
pub fn quiet(self) -> Cmd<'a>
Don’t echo the command itself to stderr.
By default, the command itself will be printed to stderr when executed via Cmd::run
.
sourcepub fn set_quiet(&mut self, yes: bool)
pub fn set_quiet(&mut self, yes: bool)
Controls whether the command itself is printed to stderr.
sourcepub fn secret(self) -> Cmd<'a>
pub fn secret(self) -> Cmd<'a>
Marks the command as secret.
If a command is secret, it echoes <secret>
instead of the program and
its arguments, even in error messages.
sourcepub fn set_secret(&mut self, yes: bool)
pub fn set_secret(&mut self, yes: bool)
Controls whether the command is secret.
sourcepub fn stdin(self, stdin: impl AsRef<[u8]>) -> Cmd<'a>
pub fn stdin(self, stdin: impl AsRef<[u8]>) -> Cmd<'a>
Pass the given slice to the standard input of the spawned process.
sourcepub fn ignore_stdout(self) -> Cmd<'a>
pub fn ignore_stdout(self) -> Cmd<'a>
Ignores the standard output stream of the process.
This is equivalent to redirecting stdout to /dev/null
. By default, the
stdout is inherited or captured.
sourcepub fn set_ignore_stdout(&mut self, yes: bool)
pub fn set_ignore_stdout(&mut self, yes: bool)
Controls whether the standard output is ignored.
sourcepub fn ignore_stderr(self) -> Cmd<'a>
pub fn ignore_stderr(self) -> Cmd<'a>
Ignores the standard output stream of the process.
This is equivalent redirecting stderr to /dev/null
. By default, the
stderr is inherited or captured.
sourcepub fn set_ignore_stderr(&mut self, yes: bool)
pub fn set_ignore_stderr(&mut self, yes: bool)
Controls whether the standard error is ignored.
sourcepub fn run(&self) -> Result<()>
pub fn run(&self) -> Result<()>
Runs the command.
By default the command itself is echoed to stderr, its standard streams
are inherited, and non-zero return code is considered an error. These
behaviors can be overridden by using various builder methods of the Cmd
.
sourcepub fn read_stderr(&self) -> Result<String>
pub fn read_stderr(&self) -> Result<String>
Run the command and return its stderr as a string.