8个版本
使用旧的Rust 2015
0.1.0 | 2016年1月23日 |
---|---|
0.0.7 | 2015年12月28日 |
0.0.6 | 2015年3月30日 |
0.0.4 | 2015年2月4日 |
0.0.3 | 2015年1月25日 |
1 in #rub
每月199次下载
在13个crate(10个直接)中使用
13KB
222 行
commandext
适用于Rust构建器的命令扩展。
版本
许可证
许可方式为以下两种之一
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),任选其一。
贡献
除非你明确声明,否则根据Apache-2.0许可证定义,你提交的任何有意包含在作品中的贡献,应按照上述方式双重许可,不附加任何额外的条款或条件。
lib.rs
:
定义了CommandExt
类型。
CommandExt
封装了Command
并增强了其功能。
CommandExt
的构建方式类似于Command
。提供命令名称,添加参数,设置环境变量等。 exec
函数接受一个闭包来执行命令并返回给定的结果T
。
示例
use commandext::{CommandExt,to_procout};
let mut cmd = CommandExt::new("echo");
cmd.env("DEBUG", "true");
cmd.arg("test");
let output = cmd.exec(to_procout());
// Execute "echo 'Testing Spawn'" via spawn and verify the exit code was 0.
// As a side effect, you would see 'Testing Spawn' on stdout.
use commandext::{CommandExt,to_res};
let res = CommandExt::new("echo").arg("Testing Spawn").exec(to_res());
assert_eq!(Ok(0), res);
// Exeute "echo test" via output and verify the output is indeed "test\n".
// In this case there is nothing on stdout. The output is consumed here.
extern crate sodium_sys;
extern crate commandext;
use commandext::{CommandExt,to_procout};
use sodium_sys::crypto::utils::secmem;
fn main() {
let cmd = CommandExt::new("echo").arg("test").exec(to_procout());
let output = cmd.unwrap();
assert_eq!(secmem::memcmp(&[116, 101, 115, 116, 10], &output.stdout[..]), 0);
}
依赖关系
~40KB