Source file opamRepositoryPath.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
open OpamFilename.Op
let root root name = root / "repo" / OpamRepositoryName.to_string name
let tar root name = root / "repo" // (OpamRepositoryName.to_string name ^ ".tar.gz")
let download_cache root = root / "download-cache"
let pin_cache_dir =
let dir =
lazy (OpamSystem.mk_temp_dir ~prefix:"opam-pin-cache" ()
|> OpamFilename.Dir.of_string )
in
fun () -> Lazy.force dir
let pin_cache u =
pin_cache_dir () /
String.sub
(OpamHash.contents @@
OpamHash.compute_from_string ~kind:`SHA512 @@
OpamUrl.to_string u)
0 16
let repo repo_root = repo_root // "repo" |> OpamFile.make
let packages_dir repo_root = repo_root / "packages"
let packages repo_root prefix nv =
match prefix with
| None -> packages_dir repo_root / OpamPackage.to_string nv
| Some p -> packages_dir repo_root / p / OpamPackage.to_string nv
let opam repo_root prefix nv =
packages repo_root prefix nv // "opam" |> OpamFile.make
let descr repo_root prefix nv =
packages repo_root prefix nv // "descr" |> OpamFile.make
let url repo_root prefix nv =
packages repo_root prefix nv // "url" |> OpamFile.make
let files repo_root prefix nv =
packages repo_root prefix nv / "files"
module Remote = struct
(** URL, not FS paths *)
open OpamUrl.Op
let repo root_url =
root_url / "repo"
let packages_url root_url =
root_url / "packages"
let archive root_url nv =
root_url / "archives" / (OpamPackage.to_string nv ^ "+opam.tar.gz")
end