#error #setting #printing #up #utilities #ci #axoapp

axocli

设置CLI应用和处理错误/打印的常用代码

3个不稳定版本

0.2.0 2024年2月16日
0.1.1 2023年11月24日
0.1.0 2023年4月4日

#172 in 配置

Download history 230/week @ 2024-03-14 248/week @ 2024-03-21 287/week @ 2024-03-28 404/week @ 2024-04-04 269/week @ 2024-04-11 162/week @ 2024-04-18 313/week @ 2024-04-25 631/week @ 2024-05-02 589/week @ 2024-05-09 637/week @ 2024-05-16 520/week @ 2024-05-23 409/week @ 2024-05-30 371/week @ 2024-06-06 393/week @ 2024-06-13 508/week @ 2024-06-20 231/week @ 2024-06-27

1,532 每月下载量
用于 3 crates

MIT/Apache

20KB
175

axocli

crates.io docs Rust CI

设置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。这对于返回包含嵌套诊断的大型结果很有用(例如,用于报告警告)。

许可证

许可协议为以下之一

任您选择。

依赖项

~5–15MB
~178K SLoC