Allow running external commands and properly handle its success and failures.
Platform | Build Status |
---|---|
Linux | |
macOS | |
Windows |
This creates provides a run
function that does inline parsing of
literal command line strings (handling escape codes and splitting
at whitespace) and checks the ExitStatus
of the command. If it
didn't succeed they will return a Err(...)
instead of a
Ok(...)
.
Note that the provided functions do return their own Output
struct instead of std::process::Output
.
use easy_process;
// stdout
let output = easy_process::run(r#"sh -c 'echo "1 2 3 4"'"#)?;
assert_eq!(&output.stdout, "1 2 3 4\n");
// stderr
let output = easy_process::run(r#"sh -c 'echo "1 2 3 4" >&2'"#)?;
assert_eq!(&output.stderr, "1 2 3 4\n");
Commands on windows are also supported in the same way:
let output = easy_process::run(r#"powershell /C 'echo "1 2 3 4"'"#)?;
assert_eq!(&output.stdout, "1 2 3 4\r\n");
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.