1
- let init () =
2
- let prefix = Opam. prefix () in
3
- let env_camllib = Fpath. (v prefix / " lib" / " ocaml" |> to_string) in
4
- let config = Fpath. (v prefix / " lib" / " findlib.conf" |> to_string) in
5
- Findlib. init ~config ~env_camllib ()
6
1
7
- let () = init ()
2
+
3
+ let init =
4
+ let initialized = ref false in
5
+ fun () ->
6
+ if ! initialized then () else
7
+ let prefix = Opam. prefix () in
8
+ let env_camllib = Fpath. (v prefix / " lib" / " ocaml" |> to_string) in
9
+ let config = Fpath. (v prefix / " lib" / " findlib.conf" |> to_string) in
10
+ Findlib. init ~config ~env_camllib ()
8
11
9
12
let all () =
13
+ init () ;
10
14
Fl_package_base. list_packages ()
11
15
12
16
13
17
let get_dir lib =
14
18
try
19
+ init () ;
15
20
Fl_package_base. query lib |> fun x ->
16
21
Logs. debug (fun m -> m " Package %s is in directory %s@." lib x.package_dir);
17
22
Ok Fpath. (v x.package_dir |> to_dir_path)
@@ -20,6 +25,7 @@ let get_dir lib =
20
25
Error (`Msg " Error getting directory" )
21
26
22
27
let archives pkg =
28
+ init () ;
23
29
let package = Fl_package_base. query pkg in
24
30
let get_1 preds =
25
31
try
@@ -39,6 +45,7 @@ let archives pkg =
39
45
|> List. sort_uniq String. compare
40
46
41
47
let sub_libraries top =
48
+ init () ;
42
49
let packages = Fl_package_base. list_packages () in
43
50
List. fold_left
44
51
(fun acc lib ->
@@ -47,6 +54,7 @@ let sub_libraries top =
47
54
Util.StringSet. empty packages
48
55
49
56
let deps pkgs =
57
+ init () ;
50
58
try
51
59
let packages =
52
60
Fl_package_base. requires_deeply ~preds: [ " ppx_driver" ] pkgs
0 commit comments