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

MIT/Apache

14KB
157 lines

Coverage Status Documentation

easy_process

Allow running external commands and properly handle its success and failures.

Platform Build Status
Linux build status
macOS build status
Windows build status

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

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