pub fn execute_vec_nopanic_result<T, TArg, TEnvKey, TEnvVal, TError>(
cmd: impl AsRef<OsStr>,
args: impl IntoIterator<Item = TArg>,
envs: impl IntoIterator<Item = (TEnvKey, TEnvVal)>,
) -> Vec<Result<T, TError>>Expand description
Executes command with args and environment variables, parses output line by line, returns after reading whole output
- On invalid command: return empty vec
- On error exit code: return already collected items
- On parsing failure: collect error item
- Possible errors: StdoutUnreadable (item error), ParsingError (item error)
Designed for
use shellfn::shell;
use std::error::Error;
#[shell(no_panic)]
fn command() -> Vec<Result<u32, Box<Error + 'static>>> {
"echo 1; echo 2; echo 3"
}
assert_eq!(vec![1, 2, 3], command().map(Result::unwrap).collect::<Vec<_>>())