run_cmd!() { /* proc-macro */ }
Expand description
Run commands, returning CmdResult
to check status.
let msg = "I love rust";
run_cmd!(echo $msg)?;
run_cmd!(echo "This is the message: $msg")?;
// pipe commands are also supported
run_cmd!(du -ah . | sort -hr | head -n 10)?;
// or a group of commands
// if any command fails, just return Err(...)
let file = "/tmp/f";
let keyword = "rust";
if run_cmd! {
cat ${file} | grep ${keyword};
echo "bad cmd" >&2;
ignore ls /nofile;
date;
ls oops;
cat oops;
}.is_err() {
// your error handling code
}