3个不稳定版本
0.2.0 | 2024年2月16日 |
---|---|
0.1.1 | 2023年11月24日 |
0.1.0 | 2023年4月4日 |
#172 in 配置
1,532 每月下载量
用于 3 crates
20KB
175 行
axocli
设置CLI应用和处理错误/打印的常用代码。
示例
查看examples/axoapp.rs以获取指南/示例。
一些有趣的示例调用以供玩耍
# clap help
cargo run --example axoapp -- --help
# success
cargo run --example axoapp -- 5
cargo run --example axoapp -- 5 --output-format=json
# normal error
cargo run --example axoapp -- 2
cargo run --example axoapp -- 2 --output-format=json
# panic (setting RUST_BACKTRACE=1 here is also interesting)
cargo run --example axoapp -- 0
cargo run --example axoapp -- 0 --output-format=json
# clap error
cargo run --example axoapp --
它做什么?
首先,它处理设置
- 一个跟踪订阅者(目前是cargo-dist使用的类型,为oranda的使用需要更多工作)
- 一个miette格式化程序(这样我们可以有统一的视觉和感觉)
- 一个恐慌处理程序(如果应用恐慌,可以更好地控制输出)
- (未实现,但可能在未来实现)一个tokio运行时
它还处理打印顶级错误,特别是包括一个json_errors模式,其中错误被格式化为json并打印到stdout,同时仍然打印一个对人类友好的版本到stderr。这对于从real_main返回的错误和恐慌都适用。因此,任何期望从我们的应用中获得机器可读输出的东西都不会因为错误/恐慌而变得无法解析。它还会在错误时设置进程退出代码(使用std::process::exit,假设我们从real_main返回或恐慌时已经完成了所有清理)。
它还公开了json诊断格式化机制,让您可以在任何地方写入它们或将它们转换为serde_json::Values。这对于返回包含嵌套诊断的大型结果很有用(例如,用于报告警告)。
许可证
许可协议为以下之一
- Apache License,版本2.0,(LICENSE-APACHE 或 apache.org/licenses/LICENSE-2.0)
- 麻省理工学院许可证(《LICENSE-MIT》或《opensource.org/licenses/MIT》)
任您选择。
依赖项
~5–15MB
~178K SLoC