Execute shell scripts asynchronously on multiple platforms. The goal of the library is to provide a simple interface to execute a user provided script on any shell. We try to avoid as much as possible writing temporary files.
use std::time::Duration;
use shell_exec::{Execution, Shell};
let execution = Execution::builder()
.shell(Shell::Bash)
.cmd(
r#"
INPUT=`cat -`;
echo "hello $INPUT"
"#
.to_string(),
)
.timeout(Duration::from_millis(10000))
.build();
let data = execution.execute(b"world").await.unwrap();
assert_eq!(b"hello world"[..], data);