Module Topkg.Private.Opam.File

module File: sig .. end
OPAM package file access.

Normally OPAM metadata access is only needed at distribution time and this is handled by Topkg_care.Opam.File using the opam-lib library.

However there is one case where we want to be able to access the metadata from Topkg: on pin builds where the watermarking process needs to be run to turn the repo into a pseudo-distribution.

Since we don't want Topkg to have any dependency and that opam currently doesn't allow to consult the fields of arbitrary OPAM files (see issue #2446) we assume a pin build has the topkg tool installed and call to it to get the OPAM fields for watermarking (if topkg is unavailable the watermarks are simply undefined).

OPAM file

type t = (string * string list) list 
The type for a simplified model the fields of an OPAM file. See Topkg_care.Opam.File.
val codec : t Topkg.Private.Codec.t
codec is a codec for OPAM file fields.
val fields : Topkg.fpath -> (string * string list) list Topkg.result
fields file are the fields of the OPAM file file which are obtained by calling the topkg topkg executable.