Module B00_cli.B00_std

Fragments for setting up B00_std.

Setup

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

val get_tty_cap : B00_std.Tty.cap option option -> B00_std.Tty.cap

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

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

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

val setup : B00_std.Tty.cap -> B00_std.Log.level -> log_spawns:B00_std.Log.level -> unit

setup tty_cap log_level ~log_spawns sets:

  • B00_std.Fmt.set_tty_styling_cap with tty_cap.
  • B00_std.Log.set_level with log_level.
  • B00_std.Os.Cmd.set_spawn_tracer with B00_std.Log.spawn_tracer log_spawns iff level >= log_spawn.

Warning. If level < log_spawn but 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 -> (B00_std.Tty.cap option, string) 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.Arg.env -> unit -> B00_std.Tty.cap 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. 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:B00_std.Log.level -> ?docs:string -> ?env:Cmdliner.Arg.env -> unit -> B00_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. 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.