Module B00.Env

Build environment.

Build environments control tool lookup and the environment of tool spawns.

Tool lookup

type tool_lookup = B0_std.Cmd.tool -> (B0_std.Fpath.t, string) Stdlib.result

The type for tool lookups. Given a command line tool specification returns a file path to the tool executable or an error message mentioning the tool if it cannot be found.

val env_tool_lookup : ?⁠sep:string -> ?⁠var:string -> B0_std.Os.Env.t -> tool_lookup

env_tool_lookup ~sep ~var env is a tool lookup that gets the value of the var variable in env treats it as a sep separated search path and uses the result to lookup with B0_std.Os.Cmd.must_find. var defaults to PATH and sep to B0_std.Fpath.search_path_sep.


type t

The type for build environments.

val v : ?⁠lookup:tool_lookup -> ?⁠forced_env:B0_std.Os.Env.t -> B0_std.Os.Env.t -> t

v ~lookup ~forced_env env is a build environment with:

  • lookup used to find build tools. Defaults to env_tool_lookup env.
  • forced_env is environment forced on any tool despite what it declared to access, defaults to Os.Env.empty
  • env the environment read by the tools' declared environment variables.
val env : t -> B0_std.Os.Env.t

env e is e's available spawn environment.

val forced_env : t -> B0_std.Os.Env.t

forced_env e is e's forced spawn environment.

val tool : t -> B0_std.Cmd.tool -> (B0_std.Fpath.t, string) Stdlib.result

tool e t looks up tool t in e.