easy-process-rs icon indicating copy to clipboard operation
easy-process-rs copied to clipboard

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

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

  • 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.