11 releases
0.2.1 | Mar 21, 2022 |
---|---|
0.2.0 | Apr 16, 2020 |
0.1.8 | Apr 14, 2020 |
0.1.7 | Mar 23, 2020 |
0.1.3 | Jun 7, 2018 |
#34 in #command-output
14KB
157 lines
easy_process
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
.
Example
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");
License
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.
Contribution
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.
Dependencies
~0.4–0.9MB
~19K SLoC