B00_pagerSourcePager interaction.
envs () describe the PAGER and TERM environment variable for cmdliner.
val find :
?win_exe:bool ->
?search:B0_std.Fpath.t list ->
don't:bool ->
unit ->
(B0_std.Cmd.t option, string) Stdlib.resultfind ~search ~don't finds a suitable pager. This is (in order):
Ok None if don't is true or if the TERM environment variable is dumb or undefined.Ok (Some pager) if pager is a tool invocation parsed from the PAGER environment variable that can be found via Os.Cmd.find_tool ?win_exe ?search.Ok (Some pager) if either less or more can be found (in that order) via Os.Cmd.find_tool ?win_exe ?search.Ok None otherwise.page_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:
LESS is undefined in the current environment it is set to LESS=FRX for the spawn of cmd.Stdlib.at_exit function is installed that flushes B0_std.Fmt.stdout and Stdlib.stdout, closes Unix.stdout and waits upon the cmd spawn termination.If pager is None this function has no effect.
page_files pager fs uses pager to page the files fs. If pager is:
None, each of the fs files is output on stdout in order separated by a file separator character (U+001C).Some cmd, cmd is run with fs as arguments. If fs is empty does nothing.don'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, defaults to Cmdliner.Manpage.s_common_options.