package ppx_deriving_cmdliner
Cmdliner.Term.t generator
Install
Dune Dependency
Authors
Maintainers
Sources
v0.0.0.tar.gz
sha256=d14c3a005243d64d2aacffdab7b74e9e3aeabc6b985e3cc5a50b975f57c84980
md5=976fd6fac87489ad76f81f10329fe1b8
Description
ppx_deriving_cmdliner is a ppx_deriving plugin that generates Cmdliner Terms for types.
README
[@@deriving cmdliner]
deriving Cmdliner is the easiest way to get a command line interface.
It is also a ppx_deriving plugin that generates a Cmdliner Term
for a given type.
Example
type params = {
username: string;
(** Your Github username *)
api_key: string;
(** Your Github API key *)
command: string; [@pos 0] [@docv "CMD"]
(** The Github API command to run *)
dry_run: bool;
(** Don't really run this command *)
time_to_wait: float; [@default 0.]
(** Just an example of another type *)
} [@@deriving cmdliner,show]
let _ =
let term = Cmdliner.Term.(const show_params $ params_cmdliner_term ()) in
tlet info = Cmdliner.Term.info Sys.argv.(0) in
Cmdliner.Term.eval (term, info)
Which gives you a CLI like the following:
NAME
awesome-cli
SYNOPSIS
awesome-cli [OPTION]... CMD
ARGUMENTS
CMD (required)
The Github API command to run
OPTIONS
--api-key=STRING (required)
Your Github API key
--dry-run
Don't really run this command
--help[=FMT] (default=auto)
Show this help in format FMT. The value FMT must be one of `auto',
`pager', `groff' or `plain'. With `auto', the format is `pager` or
`plain' whenever the TERM env var is `dumb' or undefined.
--time-to-wait=FLOAT (absent=0.)
Just an example of another type
--username=STRING (required)
Your Github username
Attributes supported
Docs:
[@doc "Overwrites the docstring"
,[@docs "SECTION TWO"]
,[@docv "VAL"]
Environment variables:
[@env "ENVNAME"]
,[@env.doc "Docs for the variable"]
,[@env.docs "SECTION ENVS"]
Other:
[@list_sep '@']
,[@default 123]
,[@enum [("a", Foo); ("b", Bar)]]
,[@aka ["b";"another-flag-name"]]
Dependencies (7)
-
cppo_ocamlbuild
build
-
cppo
build
-
ocamlfind
build
-
ppx_deriving
>= "4.0" & < "4.3"
- result
- cmdliner
-
ocaml
< "4.10"
Dev Dependencies (2)
-
ppx_import
with-test & >= "1.1" & < "2.0"
-
alcotest
with-test
Used by (1)
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page