OS.EnvEnvironment variables.
var name is the value of the environment variable name, if defined.
val set_var : string -> string option -> (unit, 'e) resultset_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) resultreq_var name is the value of the environment variable name or an error if name is undefined in the environment.
See the examples.
type 'a parser = string -> ('a, Rresult.R.msg) resultThe type for environment variable value parsers.
val parser : string -> (string -> 'a option) -> 'a parserparser 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 parserbool 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".Error otherwise.val string : string parserstring s is a string parser, it always succeeds.
val path : Fpath.t parserpath s is a path parser using Fpath.of_string.
parse name p ~absent is:
Ok absent if Env.var name = NoneOk v if Env.var name = Some s and p s = Ok vError (`Msg m) otherwise with m an error message that mentions name and the parse error of p.val value : ?log:Logs.level -> string -> 'a parser -> absent:'a -> 'avalue ~log name p ~absent is like parse but in case of error the message is logged with level log (defaults to Logs.Error) and ~absent is returned.
let debug : bool = OS.Env.(value "DEBUG" bool ~absent:false)
let msg : string = OS.Env.(value "MSG" string ~absent:"no message")
let timeout : int option =
let int = OS.Env.(some @@ parser "int" String.to_int) in
OS.Env.value "TIMEOUT" int ~absent:None