@@ -19,12 +19,14 @@ let dev_tool_build_target dev_tool =
1919 (Path. to_string (dev_tool_exe_path dev_tool)))
2020;;
2121
22- let build_dev_tool_directly common dev_tool =
22+ let build_dev_tool_directly common dev_tool network_cap =
2323 let open Fiber.O in
2424 let + result =
2525 Build. run_build_system ~common ~request: (fun _build_system ->
2626 let open Action_builder.O in
27- let * () = dev_tool |> Lock_dev_tool. lock_dev_tool |> Action_builder. of_memo in
27+ let * () =
28+ Lock_dev_tool. lock_dev_tool dev_tool network_cap |> Action_builder. of_memo
29+ in
2830 (* Make sure the tool's lockdir is generated before building the tool. *)
2931 Action_builder. path (dev_tool_exe_path dev_tool))
3032 in
@@ -47,16 +49,16 @@ let build_dev_tool_via_rpc builder lock_held_by dev_tool =
4749 >> | Rpc.Rpc_common. wrap_build_outcome_exn ~print_on_success: false
4850;;
4951
50- let lock_and_build_dev_tool ~common ~config builder dev_tool =
52+ let lock_and_build_dev_tool ~common ~config builder dev_tool network_cap =
5153 let open Fiber.O in
5254 match Dune_util.Global_lock. lock ~timeout: None with
5355 | Error lock_held_by ->
5456 Scheduler. go_without_rpc_server ~common ~config (fun () ->
55- let * () = Lock_dev_tool. lock_dev_tool dev_tool |> Memo. run in
57+ let * () = Lock_dev_tool. lock_dev_tool dev_tool network_cap |> Memo. run in
5658 build_dev_tool_via_rpc builder lock_held_by dev_tool)
5759 | Ok () ->
5860 Scheduler. go_with_rpc_server ~common ~config (fun () ->
59- build_dev_tool_directly common dev_tool)
61+ build_dev_tool_directly common dev_tool network_cap )
6062;;
6163
6264let run_dev_tool workspace_root dev_tool ~args =
@@ -71,8 +73,8 @@ let run_dev_tool workspace_root dev_tool ~args =
7173 restore_cwd_and_execve workspace_root exe_path_string args env
7274;;
7375
74- let lock_build_and_run_dev_tool ~common ~config builder dev_tool ~args =
75- lock_and_build_dev_tool ~common ~config builder dev_tool;
76+ let lock_build_and_run_dev_tool ~common ~config builder dev_tool ~args network_cap =
77+ lock_and_build_dev_tool ~common ~config builder dev_tool network_cap ;
7678 run_dev_tool (Common. root common) dev_tool ~args
7779;;
7880
@@ -113,10 +115,18 @@ let which_command dev_tool =
113115
114116let install_command dev_tool =
115117 let exe_name = Pkg_dev_tool. exe_name dev_tool in
118+ let network_cap =
119+ Dune_pkg.Network_cap. create
120+ ~reason_for_network_access:
121+ (sprintf
122+ " Fetching package metadata to solve dependencies and downloading dependencies \
123+ of %s."
124+ exe_name)
125+ in
116126 let term =
117127 let + builder = Common.Builder. term in
118128 let common, config = Common. init builder in
119- lock_and_build_dev_tool ~common ~config builder dev_tool
129+ lock_and_build_dev_tool ~common ~config builder dev_tool network_cap
120130 in
121131 let info =
122132 let doc = sprintf " Install %s as a dev tool" exe_name in
@@ -127,12 +137,20 @@ let install_command dev_tool =
127137
128138let exec_command dev_tool =
129139 let exe_name = Pkg_dev_tool. exe_name dev_tool in
140+ let network_cap =
141+ Dune_pkg.Network_cap. create
142+ ~reason_for_network_access:
143+ (sprintf
144+ " Fetching package metadata to solve dependencies and downloading dependencies \
145+ of %s."
146+ exe_name)
147+ in
130148 let term =
131149 let + builder = Common.Builder. term
132150 (* CR-someday Alizter: document this option *)
133151 and + args = Arg. (value & pos_all string [] (info [] ~docv: " ARGS" ~doc: None )) in
134152 let common, config = Common. init builder in
135- lock_build_and_run_dev_tool ~common ~config builder dev_tool ~args
153+ lock_build_and_run_dev_tool ~common ~config builder dev_tool ~args network_cap
136154 in
137155 let info =
138156 let doc =
0 commit comments