Macro steward::cmd

source ·
macro_rules! cmd {
    {
        exe: $exe:literal,
        env: $env:expr,
        pwd: $pwd:expr,
        msg: $msg:literal$(,)?
    } => { ... };
    {
        exe: $exe:literal,
        env: $env:expr,
        pwd: $pwd:expr,
        msg: Some($msg:expr)$(,)?
    } => { ... };
    {
        exe: $exe:literal,
        env: $env:expr,
        pwd: $pwd:expr,
        msg: None$(,)?
    } => { ... };
    {
        exe: $exe:literal,
        env: $env:expr,
        pwd: $pwd:expr,
        msg: $msg:expr$(,)?
    } => { ... };
    {
        exe: $exe:expr,
        env: $env:expr,
        pwd: $pwd:expr,
        msg: $msg:literal$(,)?
    } => { ... };
    {
        exe: $exe:expr,
        env: $env:expr,
        pwd: $pwd:expr,
        msg: Some($msg:expr)$(,)?
    } => { ... };
    {
        exe: $exe:expr,
        env: $env:expr,
        pwd: $pwd:expr,
        msg: None$(,)?
    } => { ... };
    {
        exe: $exe:expr,
        env: $env:expr,
        pwd: $pwd:expr,
        msg: $msg:expr$(,)?
    } => { ... };
    {
        exe: $exe:literal,
        env: $env:expr,
        pwd: $pwd:expr$(,)?
    } => { ... };
    {
        exe: $exe:expr,
        env: $env:expr,
        pwd: $pwd:expr$(,)?
    } => { ... };
}
Expand description

Convenience macro for creating a Cmd.

Examples

General command:

cmd! {
  exe: "rm -rf target",
  env: Env::empty(),
  pwd: Loc::root(),
  msg: "Removing target dir",
}

Dynamically constructed command:

cmd! {
  exe: format!("rm -rf {}", dir),
  env: Env::empty(),
  pwd: Loc::root(),
  msg: format!("Removing {} dir", dir),
}

Command without a message:

cmd! {
  exe: "ls",
  env: Env::empty(),
  pwd: Loc::root(),
}