Library
Module
Module type
Parameter
Class
Class type
Process environment setup and handling, shell configuration
val get_full :
set_opamroot:bool ->
set_opamswitch:bool ->
force_path:bool ->
?updates:OpamTypes.env_update list ->
?scrub:string list ->
'a OpamStateTypes.switch_state ->
OpamTypes.env
Get the current environment with OPAM specific additions. If force_path
, the PATH is modified to ensure opam dirs are leading. set_opamroot
and set_opamswitch
can be additionally used to set the OPAMROOT
and OPAMSWITCH
variables. scrub
is a list of environment variables to remove from the environment.
val get_opam :
set_opamroot:bool ->
set_opamswitch:bool ->
force_path:bool ->
'a OpamStateTypes.switch_state ->
OpamTypes.env
Get only environment modified by OPAM. If force_path
, the PATH is modified to ensure opam dirs are leading. set_opamroot
and set_opamswitch
can be additionally used to set the OPAMROOT
and OPAMSWITCH
variables.
With base
, apply the modifications to the specified base environment
val get_opam_raw :
set_opamroot:bool ->
set_opamswitch:bool ->
?base:OpamTypes.env ->
force_path:bool ->
OpamTypes.dirname ->
OpamTypes.switch ->
OpamTypes.env
Like get_opam
, but reads the cache file from the given opam root and switch instead of computing the environment from a switch state.
With base
, apply the modifications to the specified base environment
val get_opam_raw_updates :
set_opamroot:bool ->
set_opamswitch:bool ->
force_path:bool ->
OpamTypes.dirname ->
OpamTypes.switch ->
OpamTypes.env_update list
Like get_opam_raw
, but returns the list of updates instead of the new environment.
val hash_env_updates : OpamTypes.env_update list -> string
Returns a hash of the given env_update list suitable for use with OPAM_LAST_ENV
val get_pure : ?updates:OpamTypes.env_update list -> unit -> OpamTypes.env
Returns the running environment, with any opam modifications cleaned out, and optionally the given updates
val add : OpamTypes.env -> OpamTypes.env_update list -> OpamTypes.env
Update an environment, including reverting opam changes that could have been previously applied (therefore, don't apply to an already updated env as returned by e.g. get_full
!)
val updates :
set_opamroot:bool ->
set_opamswitch:bool ->
?force_path:bool ->
'a OpamStateTypes.switch_state ->
OpamTypes.env_update list
Like get_opam
computes environment modification by OPAM , but returns these updates
instead of the new environment.
val is_up_to_date : ?skip:bool -> 'a OpamStateTypes.switch_state -> bool
Check if the shell environment is in sync with the current OPAM switch, unless skip
is true (it's default value is OPAMNOENVNOTICE
val is_up_to_date_switch : OpamTypes.dirname -> OpamTypes.switch -> bool
Check if the shell environment is in sync with the given opam root and switch (or if OPAMNOENVNOTICE has been set, in which case we just assume it's up to date)
val compute_updates :
?force_path:bool ->
'a OpamStateTypes.switch_state ->
OpamTypes.env_update list
Returns the current environment updates to configure the current switch with its set of installed packages
val shell_eval_invocation : OpamTypes.shell -> string -> string
Returns shell-appropriate statement to evaluate cmd
.
val opam_env_invocation :
?root:string ->
?switch:string ->
?set_opamswitch:bool ->
OpamTypes.shell ->
string
Returns "opam env" invocation string together with optional root and switch overrides
val eval_string :
'a OpamStateTypes.global_state ->
?set_opamswitch:bool ->
OpamTypes.switch option ->
string
The shell command to run by the user to set his OPAM environment, adapted to the current shell (as returned by eval `opam config env`
)
val path : force_path:bool -> OpamTypes.dirname -> OpamTypes.switch -> string
Returns the updated contents of the PATH variable for the given opam root and switch (set force_path
to ensure the opam path is leading)
val full_with_path :
force_path:bool ->
?updates:OpamTypes.env_update list ->
OpamTypes.dirname ->
OpamTypes.switch ->
OpamTypes.env
Returns the full environment with only the PATH variable updated, as per path
val env_expansion :
?opam:OpamFile.OPAM.t ->
'a OpamStateTypes.switch_state ->
OpamTypes.env_update ->
OpamTypes.env_update
Performs variable expansion on the strings in an environment update
val setup :
OpamTypes.dirname ->
interactive:bool ->
?dot_profile:OpamTypes.filename ->
?update_config:bool ->
?env_hook:bool ->
?completion:bool ->
?inplace:bool ->
OpamTypes.shell ->
unit
Sets the opam configuration in the user shell, after detailing the process and asking the user if either update_config
or shell_hook
are unset
val update_user_setup :
OpamTypes.dirname ->
?dot_profile:OpamTypes.filename ->
OpamTypes.shell ->
unit
Update the user configuration in $HOME for good opam integration.
val write_static_init_scripts :
OpamTypes.dirname ->
?completion:bool ->
?env_hook:bool ->
?inplace:bool ->
unit ->
unit
Write the generic scripts in ~/.opam/opam-init needed to import state for various shells. If specified, completion and env_hook files can also be written or removed (the default is to keep them as they are). If inplace
is true, they are updated if they exist.
val write_custom_init_scripts :
OpamTypes.dirname ->
(string * string) list ->
unit
Write into OpamPath.hooks_dir
the given custom scripts (listed as (filename, content)), normally provided by opamrc (OpamFile.InitConfig
)
val write_dynamic_init_scripts : 'a OpamStateTypes.switch_state -> unit
Update the shell scripts containing the current switch configuration in ~/.opam/opam-init ; prints a warning and skips if a write lock on the global state can't be acquired (note: it would be better to acquire a write lock beforehand, but only when working on the switch selected in ~/.opam/config)
val clear_dynamic_init_scripts :
OpamStateTypes.rw OpamStateTypes.global_state ->
unit
Removes the dynamic init scripts setting the variables for any given switch.
val check_and_print_env_warning : 'a OpamStateTypes.switch_state -> unit
Print a warning if the environment is not set-up properly. (General message)
val hook_env :
OpamPath.t ->
OpamVariable.variable_contents option OpamVariable.Map.t
Hook directory environment