package oasis
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=18b73deef4ed6e9a83337f24b3bbe2ded65268b3ff7309fcc00d25e57e1dc12e
md5=98492f4657c2c5b30e3b1bc945e58419
doc/oasis.cli/CLISubCommand/index.html
Module CLISubCommand
SubCommand definition
type cli_parsing_t = (Arg.key * Arg.spec * Arg.doc) list * Arg.anon_fun
Define the command line arguments required for a subcommand.
type 'a main_t = ctxt:OASISContext.t -> 'a
The main function to run the subcommand.
type 'a run_t = unit -> cli_parsing_t * 'a main_t
Generate command line arguments and the function to run the main of the subcommand.
type t = {
scmd_name : OASISTypes.name;
(*Name of the subcommand, used to call it
*)scmd_synopsis : string;
(*Short description of the subcommnad, displayed when doing a summary of the available subcommands
*)scmd_help : string;
(*Long description of the subcommand, displayed when showing help of the subcommand.
It can contains variable substitution as defined in
*)Buffer.add_substitute
.scmd_usage : string;
(*
*)Arg
usage textscmd_deprecated : bool;
(*Is this subcommand deprecated.
*)scmd_run : unit run_t;
(*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
Produces an empty list of specs. See also OASISContext.fspecs
val make_run :
(unit -> cli_parsing_t * 'a cli_parsing_post_t) ->
('a -> 'b) main_t ->
'b run_t
make_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 ->
synopsis:string ->
help:string ->
unit run_t ->
unit
val find : OASISTypes.name -> t
Find a subcommand.
val list_plugin : ?deprecated:bool -> unit -> PluginLoader.entry list
List all PluginLoader entries registered. Set deprecated
to false to filter out deprecated plugin
val list_builtin : ?deprecated:bool -> unit -> t list
List all builtin plugin registered. Set deprecated
to false to filter out deprecated builtin.