#buildable #rub #commandext

commandext

A Command extension suitable for use in Rust Builders

8 releases

Uses old Rust 2015

0.1.0 Jan 23, 2016
0.0.7 Dec 28, 2015
0.0.6 Mar 30, 2015
0.0.4 Feb 4, 2015
0.0.3 Jan 25, 2015

#2 in #buildable

Download history 21/week @ 2021-05-27 19/week @ 2021-06-03 31/week @ 2021-06-10 10/week @ 2021-06-17 17/week @ 2021-06-24 23/week @ 2021-07-01 22/week @ 2021-07-08 33/week @ 2021-07-15 24/week @ 2021-07-22 37/week @ 2021-07-29 40/week @ 2021-08-05 28/week @ 2021-08-12 19/week @ 2021-08-19 3/week @ 2021-08-26 24/week @ 2021-09-09

103 downloads per month
Used in less than 10 crates

MIT/Apache

13KB
219 lines

commandext

A Command extension suitable for use by Rust Builders.

Version

Crates.io Build Status

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


lib.rs:

Defines the CommandExt type.

CommandExt wraps Command and enhances it.

A CommandExt is built similar to a Command. Supply the command name, add args, set enviroment variables, etc. The exec function takes a closure that executes the command and returns the given result T.

Examples

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);
}

Dependencies