Module Os.Env

Environment variables.

Variables

val find : empty_is_none:bool -> string -> string option

find ~empty_is_none name is the value of the environment variable name in the current process environment, if defined. If empty_is_none is true, None is returned if the variable value is the empty string.

val find' : empty_is_none:bool -> (string -> ('a, string) Stdlib.result) -> string -> ('a option, string) Stdlib.result

find' ~empty_is_none parse name is like find but the value is parsed with parse. If the latter errors with Error e, Error (Fmt.str "%s env: %s" name e) is returned.

Process environement

type t = string String.Map.t

The type for process environments.

val empty : t

empty is String.Map.empty.

val override : t -> by:t -> t

override env ~by:o overrides the definitions in env by o.

val add : string -> string -> t -> t

add is Additional adds.

val current : unit -> (t, string) Stdlib.result

current () is the current process environment.

Process environments as assignments

type assignments = string list

The type for environments as lists of strings of the form "var=value".

val current_assignments : unit -> (assignments, string) Stdlib.result

current_assignments () is the current process environment as assignments.

val of_assignments : ?⁠init:t -> string list -> (t, string) Stdlib.result

of_assignments ~init ss folds over strings in ss, cuts them at the leftmost '=' character and adds the resulting pair to init (defaults to empty). If the same variable is bound more than once, the last one takes over.

val to_assignments : t -> assignments

to_assignments env is env's bindings as assignments.