State library for opam 2.1

Loads the global state (from the opam root obtained through OpamStateConfig.(!r.root))

val with_ : 'a OpamStateTypes.lock -> ( 'a OpamStateTypes.global_state -> 'b ) -> 'b

Loads the global state as load, and calls the given function while keeping it locked (as per the lock argument), releasing the lock afterwards

The set of all installed packages, in any switch

val fold_switches : ( OpamTypes.switch -> OpamTypes.switch_selections -> 'a -> 'a ) -> 'b OpamStateTypes.global_state -> 'a -> 'a

Fold over switches, using switch selections. Switch selection file switch-state is loaded only read-only; no further checks are done on the opam root version.

val switch_exists : 'a OpamStateTypes.global_state -> OpamTypes.switch -> bool

Checks a switch for existence: either configured in the opam root, or an existing local switch with a configuration file pointing to the current root

Returns the map of installed instances of the package name towards the list of switches they are installed in

Default list of repositories to get packages from, ordered by decreasing priority. This can be overridden by switch-specific selections, and does not have to include all configured repositories.

Releases any locks on the given global_state

val drop : 'a OpamStateTypes.global_state -> unit

Releases any locks on the given global state and then ignores it.

Using drop gt is equivalent to ignore (unlock gt), and safer than other uses of ignore where it is not enforced by the type-system that the value is unlocked before it is lost.

Calls the provided function, ensuring a temporary write lock on the given global state

Writes back the global configuration file ~/.opam/config

Updates the configured list of switches, making sure the current switch is registered if it is set and exists, and removing any non-existing switches. Writes back to disk if possible (ie lock is available)

val inferred_from_system : string

Description used for system inferred variables