B0_opam.File
opam
file generation.
type value = [
| `Raw of string | (* A raw, unescaped value *) |
| `B of bool | (* A boolean. *) |
| `S of string | (* A string. *) |
| `L of bool * value list | (* A list of values, the boolean indicates whether line-by-line rendering should be forced. *) |
]
The type for opam values.
type field = string * value
The type for opam fields. The field name and its value.
type section = string * string option * t
The type for opam sections. The section name, the optional string and the contents of the section.
and t = item list
The type for generic opam file contents.
val v2 : item
v2
is opam-version: "2.0"
.
val pp : t B00_std.Fmt.t
pp
formats file contents.
val to_string : t -> string
to_string
formats file contents to a string.
pkg_of_meta ~with_name m
is an opam
package file from m
. Here's an account of how opam fields are populated by metadata keys.
"authors:"
, B0_meta.authors
."build:"
, B0_opam.Meta.build
."bug-report:"
, B0_meta.issues
."conflicts:"
, B0_opam.Meta.conflicts
."description:"
, B0_meta.description
."depends:"
, B0_opam.Meta.depends
."depopts:"
, B0_opam.Meta.depopts
."dev-repo:"
, B0_meta.repo
."doc:"
, B0_meta.online_doc
."homepage:"
, B0_meta.homepage
."install:"
, B0_opam.Meta.install
."license:"
, B0_meta.licenses
."maintainer:"
, B0_meta.maintainers
."name:"
, B0_opam.Meta.name
iff with_name
is true
."synopsis:"
, B0_meta.synopsis
."tags:"
, B0_meta.description_tags
.Finally the contents of B0_opam.Meta.file_addendum
is appended after the definition of these fields.
See Meta.pkg_of_pack
for deriving metadata from build packs.