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 命令行工具
13KB
250 代码行
sbg - CLI 模板代码生成器
s
在sbg
中原本代表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 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义,您提交给作品包含的任何有意贡献都将根据上述条款双重许可,没有额外的条款或条件。
依赖项
~7MB
~147K SLoC