Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Signature for repository handlers and some helpers for the repository type
type update =
| Update_full of OpamTypes.dirname
No previous known state, the full contents have been put in the given temporary directory
*)| Update_patch of OpamTypes.filename
The given patch file corresponds to the update, i.e. applying it to the local repository with 'patch -p1' would get it to the upstream state
*)| Update_empty
The repository is already up to date
*)| Update_err of exn
Failed to obtain the update
*)Type returned by repository updates.
module type S = sig ... end
Backend signature
val to_string : OpamTypes.repository -> string
Pretty-print
val to_json : OpamTypes.repository -> OpamTypes.json
val compare : OpamTypes.repository -> OpamTypes.repository -> int
Compare repositories
val local : OpamTypes.dirname -> OpamTypes.repository
Create a local repository on a given path, without remote (only for external tools, not to be mistaken for an opam repo with a local url)
val check_digest : OpamTypes.filename -> OpamHash.t option -> bool
check_digest file expected
check that the file
digest is the one expected
.
val job_text :
OpamTypes.repository_name ->
string ->
'a OpamProcess.job ->
'a OpamProcess.job
Adds a label to the given job, for the corresponding repository name and action
val get_diff :
OpamTypes.dirname ->
OpamTypes.basename ->
OpamTypes.basename ->
OpamTypes.filename option OpamProcess.job
get_diff parent_dir subdir1 subdir2
computes the diff between the two subdirs of parent_dir
, returns None if they are equal, and the corresponding patch otherwise.
Note: this relies on the diff -ruN
command, a built-in diff may be more portable -- in particular, -u
, -N
are not POSIX, and recursive diffs might not be completely reliable. It also assumes text files only, and fails otherwise.