Command.Param
is intended to be used with the [%map_open]
syntax defined in ppx_let
, like so:
Various internal values
val help : Base.String.t Lazy.t t
The help text for the command.
val path : Base.String.t Base.List.t t
The subcommand path of the command.
val args : Base.String.t Base.List.t t
The arguments passed to the command.
val flag : ?aliases:Base.String.t Base.List.t -> ?full_flag_required:Base.Unit.t -> Base.String.t -> 'a Flag.t -> doc:Base.String.t -> 'a t
flag name spec ~doc
specifies a command that, among other things, takes a flag namedname
on its command line.doc
indicates the meaning of the flag.All flags must have a dash at the beginning of the name. If
name
is not prefixed by "-", it will be normalized to"-" ^ name
.Unless
full_flag_required
is used, one doesn't have to passname
exactly on the command line, but only an unambiguous prefix ofname
(i.e., a prefix which is not a prefix of any other flag's name).NOTE: the
doc
for a flag which takes an argument should be of the formarg_name ^ " " ^ description
wherearg_name
describes the argument anddescription
describes the meaning of the flag.NOTE: flag names (including aliases) containing underscores will be rejected. Use dashes instead.
NOTE: "-" by itself is an invalid flag name and will be rejected.
val flag_optional_with_default_doc : ?aliases:Base.String.t Base.List.t -> ?full_flag_required:Base.Unit.t -> Base.String.t -> 'a Arg_type.t -> ('a -> Sexp.t) -> default:'a -> doc:Base.String.t -> 'a t
flag_optional_with_default_doc name arg_type sexp_of_default ~default ~doc
is a shortcut forflag
, where:- The
Flag.t
isoptional_with_default default arg_type
- The
doc
is passed through with an explanation of what the default value appended.
- The
val anon : 'a Anons.t -> 'a t
anon spec
specifies a command that, among other things, takes the anonymous arguments specified byspec
.
module If_nothing_chosen : sig ... end
val choose_one : 'a Base.Option.t t Base.List.t -> if_nothing_chosen:('a, 'b) If_nothing_chosen.t -> 'b t
choose_one clauses ~if_nothing_chosen
expresses a sum type. It raises if more than one ofclauses
isSome _
. Whenif_nothing_chosen = `Raise
, it also raises if none ofclauses
isSome _
.
val and_arg_names : 'a t -> ('a * Base.String.t Base.List.t) t
and_arg_names t
returns both the value oft
and the names of the arguments that went intot
. Useful for errors that reference multiple params.
val and_arg_name : 'a t -> ('a * Base.String.t) t
Like
and_arg_names
, but asserts that there is exactly one name.