simple-cmd

Crates.iosimple-cmd
lib.rssimple-cmd
version0.0.19
sourcesrc
created_at2023-12-21 20:26:43.230595
updated_at2024-01-28 07:26:54.168694
descriptioncommand line utility for spawning commands
homepagehttps://github.com/sephiroth74/simple-cmd
repositoryhttps://github.com/sephiroth74/simple-cmd
max_upload_size
id1077464
size29,092
Alessandro Crugnola (sephiroth74)

documentation

README

simple-cmd

crates.io ci

Rust command exeuctor

Example:

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

Piping:

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

Commit count: 21

cargo fmt