forked from ocaml/opam
-
Notifications
You must be signed in to change notification settings - Fork 4
/
opamPath.mli
236 lines (168 loc) · 7.41 KB
/
opamPath.mli
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
(***********************************************************************)
(* *)
(* Copyright 2012 OCamlPro *)
(* Copyright 2012 INRIA *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Public License version 3.0. *)
(* *)
(* OPAM is distributed in the hope that it will be useful, *)
(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)
(* GNU General Public License for more details. *)
(* *)
(***********************************************************************)
(** The various paths where OPAM configuration files are stored. *)
open OpamTypes
(** {2 Global paths} *)
(** Type of path root *)
type t = dirname
(** Default root path *)
val default: unit -> t
(** Root dir: {i $opam/} *)
val root: t -> dirname
(** lock file *)
val lock: t -> filename
(** Main configuration file: {i $opam/config} *)
val config: t -> filename
(** Compiler aliases *)
val aliases: t -> filename
(** OPAM files: {i $opam/opam/$NAME.$VERSION.opam} *)
val opam: t -> package -> filename
(** Compiler files: {i $opam/compilers/$OVERSION.comp} *)
val compiler: t -> compiler -> filename
(** Compiler files: {i $opam/compilers/} *)
val compilers_dir: t -> dirname
(** Description file: {i $opam/descr/$NAME.$VERSION} *)
val descr: t -> package -> filename
(** Archives files: {i $opam/archives/$NAME.$VERSION.tar.gz} *)
val archive: t -> package -> filename
(** OPAM files folder: {i $opam/opam/} *)
val opam_dir: t -> dirname
(** Description files folder: {i $opam/descr/} *)
val descr_dir: t -> dirname
(** Archives files folder: {i $opam/archives/} *)
val archives_dir: t -> dirname
(** Return the repository index: {i $opam/repo/index} *)
val repo_index: t -> filename
(** Switch related paths *)
module Switch: sig
(** Root dir: {i $opam/$OVERSION} *)
val root: t -> switch -> dirname
(** lock file *)
val lock: t -> switch -> filename
(** Library path for a given package:
{i $opam/$OVERSION/lib/NAME} *)
val lib: t -> switch -> name -> dirname
(** Library path: {i $opam/$OVERSION/lib/} *)
val lib_dir: t -> switch -> dirname
(** DLL paths *)
val stublibs: t -> switch -> dirname
(** toplevel path: {i $opam/$OVERSION/lib/toplevel} *)
val toplevel: t -> switch -> dirname
(** Documentation path for a given package:
{i $opam/$OVERSION/doc/NAME} *)
val doc: t -> switch -> name -> dirname
(** Documentation path: {i $opam/$OVERSION/doc/} *)
val doc_dir: t -> switch -> dirname
(** Shared directory: {i $opam/$OVERSION/share} *)
val share_dir: t -> switch -> dirname
(** Share directory for a given package: {i $opam/$OVERSION/share/$package} *)
val share: t -> switch -> name -> dirname
(** Man pages path: {i $opam/$OVERSION/man/}. The optional
[num] argument will add a {i manN } suffix if specified *)
val man_dir: ?num:string -> t -> switch -> dirname
(** Installed binaries: {i $opam/$OVERSION/bin} *)
val bin: t -> switch -> dirname
(** List of installed packages with their version:
{i $opam/$OVERSION/installed} *)
val installed: t -> switch -> filename
(** Tempory folders used to decompress and compile
the corresponding archives:
{i $opam/$OVERSION/build/$NAME-$VERSION} *)
val build: t -> switch -> package -> dirname
(** Tempory folders used to decompress and compile
the OCaml compiler:
{i $opam/$OVERSION/build/_} *)
val build_ocaml: t -> switch -> dirname
(** Tempory folder: {i $opam/$OVERSION/build} *)
val build_dir: t -> switch -> dirname
(** A file containing the env variables in which build command are
processed: {i $opam/$OVERSION/build/$NAME.$VERSION/$NAME.env} *)
val build_env: t -> switch -> package -> filename
(** A file containing a copy of the current env variables, before
the env variables for the build are set:
{i $opam/$OVERSION/build/$NAME.$VERSION/$NAME.old.env} *)
val build_old_env: t -> switch -> package -> filename
(** Tempory location of install files:
{i $opam/$OVERSION/build/$NAME.$VERSION/$NAME.install} *)
val build_install: t -> switch -> package -> filename
(** Tempory location of config files: {i
$opam/$OVERSION/build/$NAME.$VERSION/$NAME.config} *)
val build_config: t -> switch -> package -> filename
(** Installed files for a given package:
{i $opam/$OVERSION/install/$NAME.install} *)
val install: t -> switch -> name -> filename
(** Installed files: {i $opam/$OVERSION/install/} *)
val install_dir: t -> switch -> dirname
(** Packages to reinstall on next upgrade:
{i $opam/$OVERSION/reinstall} *)
val reinstall: t -> switch -> filename
(** Compile and link flags for a given package:
{i $opam/$OVERSION/config/$NAME.config} *)
val config: t -> switch -> name -> filename
(** Configuration folder: {i $opam/$OVERSION/config} *)
val config_dir: t -> switch -> dirname
(** Pinned package file *)
val pinned: t -> switch -> filename
end
(** Repository paths *)
module Repository: sig
(** Repository root *)
type r
(** Get the directory root *)
val root: r -> dirname
(** lock file *)
val lock: r -> filename
(** Create an arbitrary repository root *)
val raw: dirname -> r
(** Return the repository folder: {i $opam/repo/$repo} *)
val create: t -> repository_name -> r
(** Return the version file *)
val version: r -> filename
(** Return the repository config: {i $opam/repo/$repo/config} *)
val config: r -> filename
(** Packages folder: {i $opam/repo/$repo/packages} *)
val packages_dir: r -> dirname
(** Package folder: {i $opam/repo/$repo/packages/$NAME.$VERSION} *)
val package: r -> package -> dirname
(** Return the OPAM file for a given package:
{i $opam/repo/$repo/packages/$NAME.$VERSION/opam} *)
val opam: r -> package -> filename
(** Return the description file for a given package:
{i $opam/repo/$repo/packages/$NAME.VERSION/descr} *)
val descr: r -> package -> filename
(** Return the archive for a given package:
{i $opam/repo/$repo/archives/$NAME.$VERSION.tar.gz} *)
val archive: r -> package -> filename
(** Return the archive folder: {i $opam/repo/$repo/archives/} *)
val archives_dir: r -> dirname
(** Return the list of updated packages:
{i $opam/repo/$repo/updated} *)
val updated: r -> filename
(** Return the upload folder for a given version:
{i $opam/repo/$repo/upload/} *)
val upload_dir: r -> dirname
(** Compiler files: {i $opam/repo/$repo/compilers/$OVERSION.comp} *)
val compiler: r -> compiler -> filename
(** Compiler files: {i $opam/repo/$repo/compilers/} *)
val compilers_dir: r -> dirname
(** urls {i $opma/repo/$repo/package/$NAME.$VERSION/url} *)
val url: r -> package -> filename
(** files {i $opam/repo/$repo/packages/$NAME.$VERSION/files} *)
val files: r -> package -> dirname
(** Tempory folder {i $opam/repo/$repo/tmp} *)
val tmp: r -> dirname
(** Tempory folder {i $opam/repo/$repo/tmp/$NAME.$VERSION/} *)
val tmp_dir: r -> package -> dirname
end