#command #builder #rub #buildable #extension #suitable #execute

commandext

适用于Rust构建器使用的命令扩展

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

Download history 47/week @ 2024-03-11 67/week @ 2024-03-18 85/week @ 2024-03-25 443/week @ 2024-04-01 260/week @ 2024-04-08 48/week @ 2024-04-15 71/week @ 2024-04-22 75/week @ 2024-04-29 47/week @ 2024-05-06 62/week @ 2024-05-13 47/week @ 2024-05-20 40/week @ 2024-05-27 47/week @ 2024-06-03 33/week @ 2024-06-10 43/week @ 2024-06-17 73/week @ 2024-06-24

每月199次下载
13个crate(10个直接)中使用

MIT/Apache

13KB
222

commandext

适用于Rust构建器的命令扩展。

版本

Crates.io Build Status

许可证

许可方式为以下两种之一

贡献

除非你明确声明,否则根据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