Module B0_std_cli

Cmdliner support for B0_std.

Exits

module Exit : sig ... end

Program exits.

Argument converters

val fpath : B0_std.Fpath.t Cmdliner.Arg.conv

fpath is a converter for file paths. No existence checks are performed on the path.

val cmd : B0_std.Cmd.t Cmdliner.Arg.conv

cmd is a converter for commands.

Specifying output format

val s_output_format_options : string

s_output_format_options is a manual section called "OUTPUT FORMAT OPTIONS"

type output_format = [
  1. | `Normal
  2. | `Short
  3. | `Long
]

The type for specifying output format.

val output_format : ?docs:string -> ?short_opts:string list -> ?long_opts:string list -> unit -> output_format Cmdliner.Term.t

output_format ~short_opts ~long_opts () are mutually exclusive options to specify short and long output format, without options this is `Normal. short_opts defaults to ["s"; "short"] and long_opts default to ["l"; "long"]. docs is the manual section in which options are documented, defaults to s_output_format_options.

Fragments for setting up B0_std.

TODO maybe we should just side effect in the options, it would be simpler to setup.

Setup

Configure colored output and log verbosity and the B0_std.Os.Cmd.spawn_tracer.

val get_tty_cap : B0_std.Fmt.styler option option -> B0_std.Fmt.styler

get_tty_cap cap determines cap with B0_std.Tty.cap and B0_std.Tty.of_fd on Unix.stdout if cap is None or Some None.

val get_log_level : B0_std.Log.level option -> B0_std.Log.level

get_log_level level determines level with B0_std.Log.level.Warning if level is None.

val setup : B0_std.Fmt.styler -> B0_std.Log.level -> log_spawns:B0_std.Log.level -> unit

setup tty_cap log_level ~log_spawns sets:

Warning. If level < log_spawn but B0_std.Log.level is increased after this call, the spawns won't be traced (most cli programs do not change after the initial setup). Do your own setup if that is a problem for you.

Cli arguments

val tty_cap_of_string : string -> (B0_std.Fmt.styler option, string) Stdlib.result

tty_cap_of_string v parses:

  • "", "auto" into None
  • "always" into Some `Ansi
  • "never" into Some `None
val tty_cap : ?docs:string -> ?env:Cmdliner.Cmd.Env.info -> unit -> B0_std.Fmt.styler option option Cmdliner.Term.t

tty_cap ~docs ~env () is a cli interface for specifiying a TTY capability with a --color option. docs is where the options are documented (defaults to Cmdliner.Manpage.s_common_options). env, if provided, is an environment variable to set the value (use something like "MYPROGRAM_COLOR"). None is returned if the value is not set on the cli or via the env var.

val log_level : ?none:B0_std.Log.level -> ?docs:string -> ?env:Cmdliner.Cmd.Env.info -> unit -> B0_std.Log.level option Cmdliner.Term.t

log_level ~none ~docs ~env () is a cli interface for specifiying a logging level with various options. docs is where the options are documented (defaults to Cmdliner.Manpage.s_common_options). env, if provided, is an environment variable to set the value (use something like "MYPROGRAM_VERBOSITY"). none is used to document the level when the log level is unspecified (defaults to Log.Warning). None is returned if the value is not set on the cli or via the env var.