module Term:sig..end
A term is evaluated by a program to produce a result.
A term made of terms referring to command line arguments
implicitly defines a command line syntax.
type +'a t
val pure : 'a -> 'a tpure v is a term that evaluates to v.val ($) : ('a -> 'b) t -> 'a t -> 'b tf $ v is a term that evaluates to the result of applying
the evaluation of v to the one of f.val app : ('a -> 'b) t -> 'a t -> 'b t
val ret : [ `Error of bool * string
| `Help of [ `Groff | `Pager | `Plain ] * string option
| `Ok of 'a ] t -> 'a tret v is a term whose evaluation depends on the case
to which v evaluates. With :
`Ok r, it evaluates to r.`Error (usage,e), the evaluation fails and Cmdliner prints
the error e and the term's usage if usage is true.`Help (format, name), the evaluation fails and Cmdliner prints the
term's man page in the given format (or the man page for a
specific name term in case of multiple term evaluation).val main_name : string tmain_name is a term that evaluates to the "main" term's name.val choice_names : string list tchoice_names is a term that evaluates to the names of the terms
to choose from.val man_format : [ `Groff | `Pager | `Plain ] tman_format is a term that defines a --man-format option and
evaluates to a value that can be used with Cmdliner.Manpage.print.
Term information defines the name and man page of a term.
For simple evaluation this is the name of the program and its
man page. For multiple term evaluation, this is
the name of a command and its man page.
type info
val info : ?sdocs:string ->
?man:Cmdliner.Manpage.block list ->
?docs:string ->
?doc:string -> ?version:string -> string -> infoinfo sdocs man docs doc version name is a term information
such that:
name is the name of the program or the command.version is the version string of the program, ignored
for commands.doc is a one line description of the program or command used
for the NAME section of the term's man page. For commands this
description is also used in the list of commands of the main
term's man page.docs, only for commands, the title of the section of the main
term's man page where it should be listed (defaults to "COMMANDS").man is the text of the man page for the term. In the text,
the variables "$(tname)" and "$(mname)" can respectively be
used to refer to the value of name and the main term's name.
sdocs defines the title of the section in which the
standard --help and --version arguments are listed.val name : info -> stringname ti is the name of the term information.type'aresult =[ `Error of [ `Exn | `Parse | `Term ] | `Help | `Ok of 'a | `Version ]
`Ok v, the term evaluated successfully and v is the result.`Version, the version string of the main term was printed
on the help formatter.`Help, man page about the term was printed on the help formatter.`Error `Parse, a command line parse error occured and was
reported on the error formatter.`Error `Term, a term evaluation error occured and was reported
on the error formatter (see Cmdliner.Term.ret).`Error `Exn, an exception e was caught and reported
on the error formatter (see the ~catch parameter of Cmdliner.Term.eval).val eval : ?help:Format.formatter ->
?err:Format.formatter ->
?catch:bool ->
?argv:string array ->
'a t * info -> 'a resulteval help err catch argv (t,i) is the evaluation result
of t with command line arguments argv (defaults to Sys.argv).
If catch is true (default) uncaught exeptions
are intercepted and their stack trace is written to the err
formatter.
help is the formatter used to print help or version messages
(defaults to Format.std_formatter). err is the formatter
used to print error messages (defaults to Format.err_formatter).
val eval_choice : ?help:Format.formatter ->
?err:Format.formatter ->
?catch:bool ->
?argv:string array ->
'a t * info ->
('a t * info) list -> 'a resulteval_choice help err catch argv default (t,i) choices is like Cmdliner.Term.eval
except that if the first argument on the command line is not an option
name it will look in choices for a term whose information has this
name and evaluate it.
If the command name is unknown an error is reported. If the name
is unspecified the "main" term t is evaluated. i defines the
name and man page of the program.