#toml #cargo-toml #productivity #cargo

bin+lib scaffold

快速将依赖项添加到您的 Rust 项目中

7 个版本 (4 个重大更新)

0.5.1 2021 年 7 月 30 日
0.5.0 2021 年 7 月 30 日
0.4.0 2020 年 11 月 3 日
0.3.0 2020 年 9 月 5 日
0.1.2 2019 年 11 月 11 日

#393 in 配置

MIT 许可证

24KB
555

Scaffold

快速将依赖项添加到现有的 Rust 项目中。

我发现自己总是在互联网上搜索或者查看旧项目来重复找到相同的依赖项。这是我为自动化这个过程制作的一个工具。

在 crates.io 上找到它

帮助屏幕已经说得很清楚了。

scaffold 0.3.0
Quickly add dependencies to your Rust project.

USAGE:
    scaffold [FLAGS] [OPTIONS] <SUBCOMMAND>

FLAGS:
    -a, --ask        Ask before each dependency
    -h, --help       Prints help information
    -t, --tilde      Use tilde versioning. Instead of "1.0.104", the version becomes "~1.0". See: https://doc.rust-
                     lang.org/cargo/reference/specifying-dependencies.html#tilde-requirements
    -V, --version    Prints version information
    -v, --verbose    Be more verbose

OPTIONS:
    -g, --groups <groups-path>     [default: ~/.config/scaffold/groups.toml]
    -p, --path <toml-path>         [default: Cargo.toml]

SUBCOMMANDS:
    add     Add groups to your project.
    help    Prints this message or the help of the given subcommand(s)
    list    List all available groups.

定义自定义组

默认情况下,脚手架将在 ~/.config/scaffold/groups.toml 中查找组。 如果此文件不存在,它将被创建。

为了方便起见,groups.toml 是一个 toml 文件,旨在看起来和感觉像 Cargo.toml

示例

[json]
serde_derive = "*"
serde_json = "*"
serde = { version = "*", features = ["derive"] }

[cli]
structopt = "*"
config = "*"
shellexpand = "*"

注意,如果版本被标记,那么脚手架将尝试确定最新版本。

列出可用的组

您可以列出所有可用的组

$ scaffold list

结果

cli
    config = "0.9.3"
    shellexpand = "1.0.0"
    structopt = "0.3.4"
json
    serde = { features = ["derive"], version = "1.0.102" }
    serde_derive = "1.0.102"
    serde_json = "1.0.41"

将组添加到您的项目中

要添加组,只需说

$ scaffold --verbose add json

结果

Adding serde = { features = ["derive"], version = "1.0.102" }.
Adding serde_derive = "1.0.102".
Adding serde_json = "1.0.41".

您可以同时添加多个

$ scaffold --verbose add json cli

结果

Adding serde = { features = ["derive"], version = "1.0.102" }.
Adding serde_derive = "1.0.102".
Adding serde_json = "1.0.41".
Adding config = "0.9.3".
Adding shellexpand = "1.0.0".
Adding structopt = "0.3.4".

在插入每个 crate 之前询问

您还可以告诉它在每个 crate 之前询问您是否需要它

$ scaffold --ask --verbose add json cli

结果

Add config = "0.9.3"? [Y/n] y
Adding config = "0.9.3".
Add shellexpand = "1.0.0"? [Y/n] n
Add structopt = "0.3.4"? [Y/n] y
Adding structopt = "0.3.4".

依赖项

~4–14MB
~167K SLoC