B00_pager
Pager interaction.
module Env : sig ... end
Environment variables.
val envs : unit -> Cmdliner.Term.env_info list
envs ()
describe the PAGER
and TERM
environment variable for cmdliner.
val find : ?win_exe:bool -> ?search:B00_std.Fpath.t list -> don't:bool ->
unit -> (B00_std.Cmd.t option, string) result
find ~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.val page_stdout : B00_std.Cmd.t option -> (unit, string) result
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
.Pervasive
.at_exit function is installed that flushes Fmt
.stdout and stdout
, closes Unix.stdout
and waits upon the cmd
spawn 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) result
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.val don't : ?docs:string -> unit -> bool Cmdliner.Term.t
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.