module CLISubCommand:sig..end
typecli_parsing_t =(Arg.key * Arg.spec * Arg.doc) list * Arg.anon_fun
type'acli_parsing_post_t =unit -> 'a
type'amain_t =ctxt:OASISContext.t -> 'a
type'arun_t =unit -> cli_parsing_t * 'a main_t
type t = {
|
scmd_name : |
(* |
Name of the subcommand, used to call it
| *) |
|
scmd_synopsis : |
(* |
Short description of the subcommnad, displayed when doing a summary
of the available subcommands
| *) |
|
scmd_help : |
(* |
Long description of the subcommand, displayed when showing help of the
subcommand.
It can contains variable substitution as defined in
| *) |
|
scmd_usage : |
(* | Arg usage text | *) |
|
scmd_deprecated : |
(* |
Is this subcommand deprecated.
| *) |
|
scmd_run : |
(* |
Generate the specs and a main function.
| *) |
val default_anon : Arg.anon_fun
val default_fspecs : unit -> cli_parsing_t * unit cli_parsing_post_t
val make_run : (unit -> cli_parsing_t * 'a cli_parsing_post_t) ->
('a -> 'b) main_t -> 'b run_tmake_run fspecs main Create a run_t by combining argument parsing with
the main function. The goal is to make main not use global variable and
create what is need to store them in fspecs. This allow to make the whole
subcommand invocation thread safe.val register : ?usage:string ->
?deprecated:bool ->
OASISTypes.name -> string -> string -> unit run_t -> unitregister ~usage name synopsis help run Create a subcommand using
provided data, see CLISubCommand.t for their meanings. See CLISubCommand.make_run to define a run
function. You can also see CLICommon for useful functions to wrap your
run.val find : OASISTypes.name -> tval list_plugin : ?deprecated:bool -> unit -> PluginLoader.entry listdeprecated to false to
filter out deprecated pluginval list_builtin : ?deprecated:bool -> unit -> t listdeprecated to false to filter
out deprecated builtin.