Environment variables
module Env : sig ... endEnvironment variables.
val envs : unit -> Cmdliner.Term.env_info listenvs () describe the PAGER and TERM environment variable for cmdliner.
Paging
val find : ?search:B00_std.Fpath.t list -> don't:bool -> unit -> (B00_std.Cmd.t option, string) Stdlib.resultfind ~search ~don't finds a suitable pager. This is (in order):
Ok Noneifdon'tistrueor if theTERMenvironment variable isdumbor undefined.Ok (Some pager)ifpageris a tool invocation parsed from thePAGERenvironment variable that can be found viaOs.Cmd.find ?search.Ok (Some pager)if eitherlessormorecan be found (in that order) viaOs.Cmd.find ?search.Ok Noneotherwise.
val page_stdout : B00_std.Cmd.t option -> (unit, string) Stdlib.resultpage_stdout pager setups the program so that if pager is Some cmd, the standard output of the program is redirected to a spawn of cmd with the following twists:
- If the environment variable
LESSis undefined in the current environment it is set toLESS=FRXfor the spawn ofcmd. - A
Pervasive.at_exit function is installed that flushesFmt.stdout andstdout, closesUnix.stdoutand waits upon thecmdspawn termination.
If pager is None this function has no effect.
val page_files : B00_std.Cmd.t option -> B00_std.Fpath.t list -> (unit, string) Stdlib.resultpage_files pager fs uses pager to page the files fs. If pager is:
None, each of thefsfiles is output on stdout in order separated by a file separator character (U+001C).Some cmd,cmdis run withfsas arguments. Iffsis empty does nothing.
Cli interaction
val don't : ?docs:string -> unit -> bool Cmdliner.Term.tdon't ~docs () is a --no-pager command line option to unconditionally request not use a pager. docs is the manual section where the option is documented.