Process environment
type t = string Astring.String.map
The type for process environments.
Variables
var name
is the value of the environment variable name
, if defined.
val set_var : string -> string option -> (unit, 'e) result
set_var name v
sets the environment variable name
to v
.
BUG. The Unix
module doesn't bind to unsetenv(3)
, hence for now using None
will not unset the variable, it will set it to ""
. This behaviour may change in future versions of the library.
opt_var name absent
is the value of the optionally defined environment variable name
if defined and absent
if undefined.
val req_var : string -> (string, 'e) result
req_var name
is the value of the environment variable name
or an error if name
is undefined in the environment.
Typed lookup
type 'a parser = string -> ('a, Rresult.R.msg) Result.result
The type for environment variable value parsers.
val parser : string -> (string -> 'a option) -> 'a parser
parser kind k_of_string
is an environment variable value from the k_of_string
function. kind
is used for error reports (e.g. could be "int"
for an int
parser).
val bool : bool parser
bool s
is a boolean parser. The string is lowercased and the result is:
Ok false
if it is one of""
,"false"
,"no"
,"n"
or"0"
.Ok true
if it is one of"true"
,"yes"
,"y"
or"1"
.- An
Error
otherwise.
val string : string parser
string s
is a string parser, it always succeeds.
path s
is a path parser using Fpath.of_string
.
parse name p ~absent
is:
Ok absent
ifEnv.var name = None
Ok v
ifEnv.var name = Some s
andp s = Ok v
Error (`Msg m)
otherwise withm
an error message that mentionsname
and the parse error ofp
.
val value : ?log:Logs.level -> string -> 'a parser -> absent:'a -> 'a
value ~log name p ~absent
is like parse
but in case of error the message is logged with level log
(defaults to Logs.level.Error
) and ~absent
is returned.