23 个版本
0.3.15 | 2023年2月19日 |
---|---|
0.3.11 | 2022年12月30日 |
0.3.10 | 2022年11月17日 |
0.2.2 | 2022年4月2日 |
0.2.1 | 2022年1月28日 |
#435 在 开发工具
185 每月下载量
在 7 crate 中使用
5KB
54 行
autoclap
此库基于 clap
构建,并自动将 Cargo.toml
的信息(名称、版本、作者、仓库)传播到使用它的应用程序。
运行 app --help
现在会自动将此信息包含在其输出中。
为什么?
Cargo.toml
是包含应用程序属性(如名称、版本、作者、描述)的唯一真实来源
- 名称
- 版本
- 作者(s)
- 描述
这些信息通常在应用程序的 main
中重复,导致潜在的不一致性(在一个地方更新但不在另一个地方更新)。
此外,一个统一这些内容的 crate 将提供跨所有使用它的应用程序的一致性。
最后,应用程序初始化的代码量最小。
用法
use clap::Command;
use autoclap::autoclap;
fn main() {
let app = autoclap!();
app.arg(
Arg::with_name("myarg")
.long("myarg")
.short('m')
.help("My arg description."),
);
let args = app.clone().try_get_matches().unwrap_or_else(|e| e.exit());
if args.get_flag("update") { /* My implementation.*/}
}
现在,运行 app --help
现在产生
app 0.1.0 :: https://github.com/username/app/releases/tag/0.1.0
Crate Author <crateauthor@e.mail>
🧵 The crate awesome description.
版本
包仓库 URL 与包版本连接,形成指向特定版本的 URL。
当发布与 crate 相同版本的发布时,此 URL 将生效。
autoclap
提供了对 GitHub
的原生支持。
依赖项
~1MB
~15K SLoC