#spinner #input #terminal-colors #color #terminal #cli

bin+lib conciliator

[WIP] 用于交互式 CLI 程序的库

12 个版本

0.3.9 2024 年 3 月 3 日
0.3.8 2023 年 12 月 2 日
0.3.7 2023 年 7 月 29 日
0.3.5 2022 年 10 月 26 日
0.3.3 2022 年 7 月 30 日

#256命令行界面

Download history 12/week @ 2024-03-31

284 每月下载量
cnsprcy 中使用

GPL-3.0-or-later

175KB
3K SLoC

用于编写交互式 CLI 程序的 WIP 库。

目前非常不稳定,API 有点不寻常。随着使用和实现缺失的功能,将进行重大更改。旨在实现 Python click 库提供而 clap 缺失的功能。在此基础上,提供与 CLI 交互的有用抽象。

功能

范围之外

  • 非 UNIX 平台
  • 配置文件处理
  • 参数解析(打算与 clap 一起使用)
  • 进度条(目前如此)
  • curses-风格的 文本用户界面(TUI)将画布绘制到终端

最初,这个库被编写为 termcolor 的扩展,但现在所需的功能已被吸收/复制/重写。因此,一些想法和设计借鉴于此,应该给予相应的认可。

在执行 cargo test 时捕获输出

core::Stream 所述,存在一个问题,即 cargo test 只能捕获使用 print!println!eprint!eprintln! 宏的输出(参见 rust#12309rust#90785)。
作为一个解决方案,这个crate提供了一个 test_capture 功能标志,它使得所有输出都通过这些宏进行。这虽然不是很好(参见 core::Stream 了解详情),但它确实使得 cargo test 能够正确地捕获输出。

幸运的是,有一种方法可以在需要时才启用此功能:只需将此crate作为 开发依赖 同时 添加,并在该条目上 启用 test_capture 功能,而不是在常规依赖项上,如下所示

[dependencies]
conciliator = ""

[dev-dependencies.conciliator]
version = ""
features = ["test_capture"]

这样,test_capture 功能将仅在编译 "测试、示例和基准测试" 时启用(参见 cargo 参考),而不是在构建二进制文件时。

依赖关系

~2–12MB
~152K SLoC