cmd_lib 0.8.2

Common rust commandline macros and utils, to write shell script like tasks easily
Documentation
use cmd_lib::{proc_env_set, run_cmd, run_fun, CmdResult, FunResult};

fn foo() -> CmdResult {
    let dir = "src";
    let f = "nofile";
    let gap = 3;

    run_cmd!{
        cd $dir;
        pwd;
        sleep $gap;
        cd $f;
    }
}

fn get_year() -> FunResult {
    run_fun!(date +%Y)
}

fn main() -> CmdResult {
    proc_env_set!(DEBUG = 1);
    run_cmd!(cd /tmp; ls | wc -l;)?;
    run_cmd!(pwd)?;

    let name = "rust";
    run_cmd!(echo $name)?;
    run_cmd!(|name| echo "hello, $name")?;

    let result = run_fun!(du -ah . | sort -hr | head -n 5)?;
    eprintln!("Top 5 directories:\n{}", result);

    if foo().is_err() {
        eprintln!("Failed to run foo()");
    }

    if get_year()? == "2020" {
        eprintln!("You are in year 2020");
    } else {
        eprintln!("Which year are you in ?");
    }

    Ok(())
}