Keywords
library, unclassified, Propose Tags, , Index, Quick Jump, OptEnvConf, OptEnvConf.Args, OptEnvConf.Casing, OptEnvConf.Completion, OptEnvConf.Doc, OptEnvConf.EnvMap, OptEnvConf.Error, OptEnvConf.Lint, OptEnvConf.Nix, OptEnvConf.NonDet, OptEnvConf.Output, OptEnvConf.Parser, OptEnvConf.Reader, OptEnvConf.Run, OptEnvConf.Setting, OptEnvConf.Validation, opt-env-conf-0.5.0.0.tar.gz, browse, Package description, Package maintainers, Norfair, edit package information
License
LGPL-3.0-only
Install
cabal install opt-env-conf-0.5.0.0

Documentation

OptEnvConf

Status

Used in production in all my products and some companies.

Goals

  • Parse command-line arguments, environment variables, and configuration values all together.
  • Self-documenting parsers for correct-by-construction documentation
  • Best-in-class command-line autocompletion
  • Best-in-class errors
  • Formatter-friendly API

Features

  • Parsing
    • Argument: progname hello
    • Option: progname --file foo.txt
      • Long Option: progname --file foo.txt
      • Short Option: progname --file foo.txt
      • Equals-version of long option: progname --file=foo.txt
      • Shorthand-version of short option: progname -ffoo.txt
    • Switch: progname --verbose
      • Long switch: progname --verbose
      • Short switch: progname -v
  • Documentation
    • --help
      • Global --help page
      • Per-command --help page
    • Generated --version command
    • Generated manpage
  • Completion
    • Bash completion
    • Zsh completion
    • Fish completion
  • Static settings check

Comparison to similar projects

opt-env-conf optparse-applicative envparse autodocodec
Applicative parsing ✔️ ✔️ ✔️ ✔️
Parsing arguments ✔️ ✔️ ✖️ ✖️
Parsing long options ✔️ ✔️ ✖️ ✖️
Parsing short options ✔️ ✔️ ✖️ ✖️
Parsing short-hand short options ✔️ ✔️ ✖️ ✖️
Parsing short-hand long options ✔️ ✔️ ✖️ ✖️
Parsing long switches ✔️ ✔️ ✖️ ✖️
Parsing short switches ✔️ ✔️ ✖️ ✖️
Parsing environment variables ✔️ ✖️ ✔️ ✖️
Parsing configuration values ✔️ ✖️ ✖️ ✔️
Generated global --help page ✔️ ✔️ ✖️ ✖️
Coloured global --help page ✔️ ✖️ ✖️ ✖️
Generated per-command --help page ✔️ ✔️ ✖️ ✖️
Coloured per-command --help page ✔️ ✖️ ✖️ ✖️
Generated --version command ✔️ ✖️ ✖️ ✖️
Generated manpage ✔️ ✖️ ✖️ ✖️
Helpful parse errors ✔️ ✔️ ✔️ ✔️
Coloured parse errors ✔️ ✖️ ✖️ ✖️
Generated manpage ✔️ ✖️ ✖️ ✖️
Typo suggestions 🚧 ✖️ ✖️ ✖️
Bash completion 🚧 ✔️ ✖️ ✖️
Zsh completion 🚧 ✔️ ✖️ ✖️
Fish completion 🚧 ✔️ ✖️ ✖️
Static settings check ✔️ ✖️ ✖️ ✖️

Example

The example application contains a fully worked example.

This example is part of the build in CI so you can rely on it being up-to-date.