#cli-config #boilerplate #clap #logging #cli #config #setup

clappconfig

基于 Clap 的应用程序配置样板:设置日志、加载配置、解析参数

5 个版本 (3 个破坏性更新)

0.4.0 2020 年 5 月 10 日
0.3.1 2020 年 5 月 7 日
0.3.0 2020 年 5 月 7 日
0.2.0 2020 年 4 月 24 日
0.1.0 2020 年 4 月 20 日

#951 in 命令行界面

MIT 许可证

12KB
179 代码行

clappconfig - CLI 应用程序配置样板

Clap
  App
     Config
-----------
clappconfig

此crate提供了一个简单的 CLI 应用程序样板,用于处理大多数重复的初始化任务

  • 从自定义或默认路径(或使用 Default::default())加载 JSON5 配置
  • 设置日志,具有 CLI 和基于配置的重写
  • 可选打印加载的或默认配置
  • 在请求时显示帮助/版本,由 clap 提供
  • 可选打印启动横幅

也支持自定义 clap 参数。

-> 仓库欢迎改进 PR。

日志

  • 默认使用 env_logger
  • 可以在配置文件中设置级别
  • 日志级别可以通过 --log CLI 标志重写
  • 日志级别可以通过重复使用 -v--verbose 来提高

重新导出

这些crate重新导出用于公共 API 的crate:clapanyhowlog

示例

请参阅示例目录。

名为 "rotn" 的示例实现了作为命令行工具的 rot13。

$ cargo run --example rotn -- -h

Rot-N 0.1.0 by Ondřej Hruška <[email protected]>

USAGE:
    rotn [FLAGS] [OPTIONS] --input <FILE>

FLAGS:
        --default-config    Print the default config JSON for reference (or to be piped to a file)
        --dump-config       Print the loaded config struct
    -h, --help              Prints help information
    -V, --version           Prints version information
    -v, --verbose           Increase logging verbosity (repeat to increase)

OPTIONS:
    -c, --config <FILE>    Sets a custom config file (JSON5)
    -i, --input <FILE>     Input file
        --log <LEVEL>      Set logging verbosity (error,warning,info,debug,trace)
    -n, --shift <N>        Positive or negative shift, default 13

要获取此 README 的 rot13,请运行 cargo run --example rotn -- -iREADME.md

依赖关系

~6–15MB
~180K SLoC