Conf.BitConfiguration bits.
Bundles a cli interface and a configuration file lookup.
Note. For Cmdliner proper support we would likely hide it in Cmdliner terms and let them handle the merge logic. Though that poses a few problems with e.g. configuration error report/recovery. Another problem is the recursion between specifying the configuration file lookup on the cli itself while using it terms themselves. Also lazy absents.
val with_cli_arg :
?docs:string ->
?docv:string ->
string ->
doc:string ->
absent:'a ->
conf:'a B0_sexp.Sexpq.t ->
arg:(Cmdliner.Arg.info -> 'a option Cmdliner.Arg.t) ->
'a twith_cli_arg n ~doc ~docs ~docv ~absent ~conf ~arg is a configuration bit named by n.
arg is used to parse the bit from the cli using an option argument named n documented with doc in section docs and metavariable docv.conf is used to lookup the bit value in a configuration dictionary with an optional key n.absent is used as a default value.val with_cli :
string ->
absent:'a ->
conf:'a B0_sexp.Sexpq.t ->
cli:'a option Cmdliner.Term.t ->
'a twith_cli n ~absent ~conf ~cli is a configuration bit named by n
cli is used to get the bit from the cli.conf is used to lookup the bit value in a configuration dictionary with an optional key n.basent is used as a default value.val cli : 'a t -> 'a option Cmdliner.Term.tcli b is the command line interface for b.
val conf : 'a t -> 'a B0_sexp.Sexpq.tconf b is the configuration key query for b. If the key is not found absent is returned.
val get :
'a t ->
'a option ->
(B0_sexp.Sexp.t * B0_sexp.Sexpq.path) ->
('a, string) Stdlib.resultget b cli sexp gets the configuration bit from sexp if cli is None. If it's not in the configuration then absent is returned.
val append :
'a list t ->
'a list option ->
(B0_sexp.Sexp.t * B0_sexp.Sexpq.path) ->
('a list, string) Stdlib.resultappend b cli sexp gets the configuration bit from sexp and appends them to cli.