#process #shell #stable #object #macro-rules #syntax #command

commandspec

Rust 宏,用于使用 shell 语法构建 std::process::Command 对象。使用 macro_rules! 并在稳定版上工作。

13 个版本 (破坏性更新)

使用旧的 Rust 2015

0.12.2 2018 年 11 月 23 日
0.11.0 2018 年 10 月 1 日
0.10.0 2018 年 7 月 2 日
0.6.1 2018 年 3 月 13 日

#1602Rust 模式

Download history 20/week @ 2024-03-09 9/week @ 2024-03-16 2/week @ 2024-03-23 26/week @ 2024-03-30 40/week @ 2024-04-06 10/week @ 2024-04-13 11/week @ 2024-04-20 4/week @ 2024-04-27 20/week @ 2024-05-04 27/week @ 2024-05-11 3/week @ 2024-05-18 194/week @ 2024-06-01 4/week @ 2024-06-08 1/week @ 2024-06-15 4/week @ 2024-06-22

每月 203 次下载
cargo-scriptify 中使用

MIT/Apache

40KB
832

commandspec

简单的 Rust 宏,用于构建 std::process::Command 对象。使用 macro_rules! 并在稳定版上工作。

[dependencies]
commandspec = "0.10"

然后

#[macro_use]
extern crate commandspec;

use commandspec::CommandSpec; // .execute() method on Command
use std::process::Command;

let result = execute!(
    r"
        cd path/location
        export RUST_LOG=full
        export RUST_BACKTRACE=1
        cargo run {release_flag} --bin {bin_name} -- {args}
    ",
    release_flag=Some("--release"),
    bin_name="binary",
    args=vec!["arg1", "arg2"],
)?;
// result = Ok(()) on success (error code 0), Err(CommandError) for all else

commandspec 输入的格式,按顺序

  • (可选) cd <path> 设置命令的当前工作目录,其中 path 可以是字面量、引号字符串或格式变量。
  • (可选) 一行或多行 export <name>=<value> 用于设置环境变量,具有相同的格式选项。
  • 最后,一个要调用的命令,可选地带有格式参数。

功能

  • 类似于格式的调用使得插值变量变得容易,并且自动加引号
  • 当原型设计时具有与 shell 相似的语法
  • 在稳定版 Rust 上工作。

许可

MIT 或 Apache-2.0,任选其一。

依赖

~2MB
~40K SLoC