22 个版本
0.0.19 | 2024年1月28日 |
---|---|
0.0.18 | 2024年1月22日 |
0.0.11 | 2023年12月26日 |
#4 in #spawning
被 2 个 crate 使用
28KB
859 行代码
simple-cmd
Rust 命令执行器
示例
use simple_cmd::Cmd;
use simple_cmd::prelude::*;
use tracing::trace;
use std::time::Duration;
pub fn main() {
let cmd = Cmd::builder("sleep")
.arg("1")
.timeout(Some(Duration::from_millis(100)))
.with_debug(true)
.build();
let output = cmd.output().expect("failed to wait for command");
trace!("output: {:#?}", output);
assert!(!output.status.success());
assert!(!output.interrupt());
assert!(output.kill());
}
管道
use simple_cmd::Cmd;
use simple_cmd::prelude::*;
fn test_pipe() {
let builder = Cmd::builder("echo").args(&["hello pretty world"]).with_debug(true);
let command1 = builder.build();
let mut command2 = Command::new("sed");
command2.args(&["s/pretty/_/"]);
command2.stdout(Stdio::piped());
let result = command1.pipe(command2).unwrap();
let output = result.stdout.as_str().unwrap().trim();
assert!(result.success());
assert_eq!("hello _ world", output);
}
依赖项
~1–1.7MB
~31K SLoC