#clap #structopt #cli

app sbg

生成 CLI 模板代码

4 个版本

0.0.3 2022年8月14日
0.0.2 2018年10月11日
0.0.1 2018年10月11日
0.0.0 2018年10月11日

#2069 in 命令行工具

MIT/Apache

13KB
250 代码行

sbg - CLI 模板代码生成器

build status

ssbg 中原本代表 StructOpt,但现在已被弃用,但我仍想保留这个名称。

您提供 yaml 规范,它会为您生成模板代码,如果提供带有以下内容的 Cargo.toml,则可以编译

[dependencies]
anyhow = "1"
url = "2"

[dependencies.clap]
version = "3"
features = ["derive"]

这并不灵活,并且只支持 clap 支持的一小部分功能。

当我第一次听到 steved 提出这个想法时,我感觉“一般般”,但一旦涉及到嵌套子命令,编写处理这些命令的代码就变得难以控制。他甚至写了代码(非公开),但对他来说这个符号不够满意,我就写了这个实现。我真正的灵感是我想得到一个可以生成 warp 模板代码的工具,以及生成它的 reqwest 代码(这也是公开的,但同样不是公开的)。

需要改进的地方

  • 检查 "type" 是否有有效的 Rust 类型
  • 检查 "name" 是否包含空格
  • 不允许同时存在 "args" 和 "nested"(会导致构建失败),或者支持它(这对于共享一些选项的子命令很有用)
  • 当 "type" 未指定时,假定 bool
  • 确保没有参数有相同的名称(会导致构建失败)
  • 支持 > 1 个位置参数

安装

假设您已安装 Rust 工具链

cargo install sbg

注意:最小要求的 rustc 是 v1.58,因为 serde-yaml 需要。

许可证

根据您的选择,许可如下

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您提交给作品包含的任何有意贡献都将根据上述条款双重许可,没有额外的条款或条件。

依赖项

~7MB
~147K SLoC