Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Some command helpers, and auxiliary opam management functions used by the CLI
val copy_files_to_destdir :
'a OpamStateTypes.switch_state ->
OpamTypes.dirname ->
OpamTypes.package_set ->
unit
Gets the file changes done in the installation of the given packages in the given switch, and copies the corresponding files to the same relative paths below the given prefix ; files that are not current according to the recorded package changes print warnings and aren't copied.
val remove_files_from_destdir :
'a OpamStateTypes.switch_state ->
OpamTypes.dirname ->
OpamTypes.package_set ->
unit
Removes all files that may have been installed by copy_files_to_destdir
; it's more agressive than OpamDirTrack.revert
and doesn't check if the files are current.
val url_with_local_branch : OpamTypes.url -> OpamTypes.url
If the URL points to a local, version-controlled directory, qualify it by suffixing `#current-branch` if no branch/tag/hash was specified.
val name_and_dir_of_opam_file :
OpamTypes.filename ->
OpamTypes.name option * OpamTypes.dirname
From an in-source opam file, return the corresponding package name if it can be found, and the corresponding source directory
val resolve_locals :
?quiet:bool ->
?locked:bool ->
[ `Atom of OpamTypes.atom
| `Filename of OpamTypes.filename
| `Dirname of OpamTypes.dirname ]
list ->
(OpamTypes.name * OpamUrl.t * OpamFile.OPAM.t OpamFile.t) list
* OpamTypes.atom list
Resolves the opam files and directories in the list to package name and location, and returns the corresponding pinnings and atoms. May fail and exit if package names for provided `Filename
could not be inferred, or if the same package name appears multiple times. If locked
, the *.locked
counterparts of opam files are used if present.
val resolve_locals_pinned :
'a OpamStateTypes.switch_state ->
[ `Atom of OpamTypes.atom | `Dirname of OpamTypes.dirname ] list ->
OpamTypes.atom list
Resolves the opam files and directories in the list to package name and location, according to what is currently pinned, and returns the corresponding list of atoms. Prints warnings for directories where nothing is pinned, or opam files corresponding to no pinned package.
val autopin :
OpamStateTypes.rw OpamStateTypes.switch_state ->
?simulate:bool ->
?quiet:bool ->
?locked:bool ->
[ `Atom of OpamTypes.atom
| `Filename of OpamTypes.filename
| `Dirname of OpamTypes.dirname ]
list ->
OpamStateTypes.rw OpamStateTypes.switch_state * OpamTypes.atom list
Resolves the opam files in the list to package name and location, pins the corresponding packages accordingly if necessary, otherwise updates them, and returns the resolved atom list. With simulate
, don't do the pinnings but return the switch state with the package definitions that would have been obtained if pinning. Also synchronises the specified directories, that is, unpins any package pinned there but not current (no more corresponding opam file).
This also handles pin-depends:
of the local packages. That part is done even if simulate
is true
.
If locked
, the *.locked
counterparts of opam files are used if present.
val simulate_autopin :
'a OpamStateTypes.switch_state ->
?quiet:bool ->
?locked:bool ->
[ `Atom of OpamTypes.atom
| `Filename of OpamTypes.filename
| `Dirname of OpamTypes.dirname ]
list ->
'a OpamStateTypes.switch_state * OpamTypes.atom list
The read-only version of autopin ~simulate:true
: this doesn't require a write-locked switch, and doesn't update the local packages
val get_compatible_compiler :
?repos:OpamTypes.repository_name list ->
?locked:bool ->
'a OpamStateTypes.repos_state ->
OpamTypes.dirname ->
OpamTypes.atom list
Scans for package definition files in a directory, and selects a compiler that is compatible with them from the configured default compiler list, or that is unambiguously selected by the package definitions. Returns the corresponding atoms. If no compiler matches, prints a warning, and returns the empty list after user confirmation.