boilerplate for rust CLI apps
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
Ondřej Hruška 09fcbc4d98
fix API to not report own crate version if None given
il y a 4 ans
examples fix API to not report own crate version if None given il y a 4 ans
src fix API to not report own crate version if None given il y a 4 ans
.gitignore improvements, add example, readme il y a 4 ans
Cargo.toml fix API to not report own crate version if None given il y a 4 ans
LICENSE.txt add license file il y a 4 ans
README.md fix examples il y a 4 ans

README.md

clappconfig - CLI app config boilerplate

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

This crate provides a simple CLI app boilerplate that takes care of the most repetitive init tasks:

  • Load JSON5 config from a custom or default path (or use Default::default())
  • Set up logging, with CLI and config-based overrides
  • Optionally print the loaded or default config
  • Show help / version on demand, courtesy of clap
  • Optional start-up banner print

Supports custom clap arguments as well.

-> The repository is open to improvement PRs.

Logging

  • uses env_logger by default
  • level can be set in the config file
  • log level can be overridden by the --log CLI flag
  • log level can be increased by repeated use of -v or --verbose

Re-exports

The crates re-exports crates used in public API: clap, anyhow, log.

Example

See the examples directory.

The example called "rotn" implements rot13 as a command-line tool.

$ cargo run --example rotn -- -h

Rot-N 0.1.0 by Ondřej Hruška <ondra@ondrovo.com>

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

To get rot13 of this README, run cargo run --example rotn -- -iREADME.md.