#run-command #execute #shell #process #string #stdout #numbers

runcmd

This library is used for extending Execute which is extending Command in order to execute commands more easily. Especially made for simple shell commands returning an exit code as a number, stdout and stderr as strings.

2 releases

0.1.1 Dec 20, 2022
0.1.0 Dec 20, 2022

#2583 in Parser implementations

Download history 21/week @ 2024-02-26 65/week @ 2024-03-04

86 downloads per month

MIT license

9KB
121 lines

RunCmd

CI

This library is used for extending Execute which is extending Command in order to execute commands more easily. Especially made for simple shell commands returning an exit code as a number, stdout and stderr as strings.

Usage

use std::process::Command;

use runcmd::RunCmd;

RunCmd::new("echo \"Hello World\"").execute();

verbose

verbose() will print the ins and outs to stdout

RunCmd::new("echo \"Hello World\"")
    .verbose()
    .execute();

shell

shell() sets the executor to run the command in a shell using the underlying Execute::shell rather than Execute::command.

RunCmd::new("echo \"Hello World\"")
    .shell()
    .execute();

executep

executep() runs the command, without returning anything, but panics if the command doesn't succeed. Useful in only the most trival circumstances.

RunCmd::new("echo \"Hello World\"")
    .shell()
    .executep();

execute

execute() runs the command, returning a RunCmdOutput.

let retval: RunCmdOutput = RunCmd::new("echo \"Hello World\"").execute();

It returns the following.

pub struct RunCmdOutput {
    pub cmd: String,
    pub stdout: String,
    pub stderr: String,
    pub exitcode: i32
}

Dependencies

~0.6–1MB
~25K SLoC