OpamFileToolsTools for manipulating and checking package definition ("opam") files
val template : OpamTypes.package -> OpamFile.OPAM.tCreate an OPAM package template filled with common options
val lint :
?check_extra_files:(OpamTypes.basename * (OpamHash.t -> bool)) list ->
?check_upstream:bool ->
OpamFile.OPAM.t ->
(int * [ `Warning | `Error ] * string) listRuns several sanity checks on the opam file; returns a list of warnings. `Error level should be considered unfit for publication, while `Warning are advisory but may be accepted. The int is an identifier for this specific warning/error. If check_extra_files is unspecified or false, warning 53 won't be checked.
val lint_file :
?check_extra_files:(OpamTypes.basename * (OpamHash.t -> bool)) list ->
?check_upstream:bool ->
?handle_dirname:bool ->
OpamFile.OPAM.t OpamFile.typed_file ->
(int * [ `Warning | `Error ] * string) list * OpamFile.OPAM.t optionSame as lint, but operates on a file, which allows catching parse errors too. check_extra_files defaults to a function that will look for a files/ directory besides filename. handle_dirname is used for warning 4, and should be set when reading packages from a repository, so that package name and version are inferred from the filename.
val lint_channel :
?check_extra_files:(OpamTypes.basename * (OpamHash.t -> bool)) list ->
?check_upstream:bool ->
?handle_dirname:bool ->
OpamFile.OPAM.t OpamFile.typed_file ->
Stdlib.in_channel ->
(int * [ `Warning | `Error ] * string) list * OpamFile.OPAM.t optionSame as lint_file, but taking input from a channel. check_extra_files defaults to a function that will look for a files/ directory besides filename
val lint_string :
?check_extra_files:(OpamTypes.basename * (OpamHash.t -> bool)) list ->
?check_upstream:bool ->
?handle_dirname:bool ->
OpamFile.OPAM.t OpamFile.typed_file ->
string ->
(int * [ `Warning | `Error ] * string) list * OpamFile.OPAM.t optionLike lint_file, but takes the file contents as a string. check_extra_files defaults to a function that will look for a files/ directory besides filename
Utility function to print validation results
val warns_to_json :
?filename:string ->
(int * [ `Warning | `Error ] * string) list ->
OpamJson.tUtility function to construct a json of validation results. The format is as follow:
{ "file" : string <filename>,
"result" : string (passed | error | warning),
"warnings" :
[ { "id" : int,
"message" : string <warning message> },
...
],
"errors" :
[ { "id" : int,
"message" : string <error message> },
...
]
}val read_opam : OpamTypes.dirname -> OpamFile.OPAM.t optionRead the opam metadata from a given directory (opam file, with possible overrides from url and descr files). Warning: use read_repo_opam instead for correctly reading files from repositories!
val read_repo_opam :
repo_name:OpamTypes.repository_name ->
repo_root:OpamTypes.dirname ->
OpamTypes.dirname ->
OpamFile.OPAM.t optionLike read_opam, but additionally fills in the metadata_dir info correctly for the given repository.
val add_aux_files :
?dir:OpamTypes.dirname ->
?files_subdir_hashes:bool ->
OpamFile.OPAM.t ->
OpamFile.OPAM.tAdds data from 'url' and 'descr' files found in the specified dir or the opam file's metadata dir, if not already present in the opam file. if files_subdir_hashes is true, also adds the names and hashes of files found below 'files/'
val map_all_variables :
(OpamTypes.full_variable -> OpamTypes.full_variable) ->
OpamFile.OPAM.t ->
OpamFile.OPAM.tTools to manipulate the OpamFile.OPAM.t contents
val map_all_filters :
(OpamTypes.filter -> OpamTypes.filter) ->
OpamFile.OPAM.t ->
OpamFile.OPAM.tval dep_formula_to_string : OpamTypes.formula -> stringConverts a dependency formula to the same format as used in opam package definition files.
val sort_opam : OpamFile.OPAM.t -> OpamFile.OPAM.tSort opam fields: author, tags, depexts, depends, depopts, conflicts, pin_depends, extra_files, extra_sources