11(* This example assumes the solver service to be running *)
22open Lwt.Syntax
33
4- let job_log job =
4+ let job_log ch =
55 let module L = Solver_service_api.Raw.Service. Log in
66 L. local
77 @@ object
@@ -11,7 +11,8 @@ let job_log job =
1111 let open L.Write in
1212 release_param_caps () ;
1313 let msg = Params. msg_get params in
14- Buffer. add_string job msg;
14+ output_string ch msg;
15+ flush ch;
1516 Capnp_rpc_lwt.Service. (return (Response. create_empty () ))
1617 end
1718
@@ -74,16 +75,19 @@ let run_client ~package ~version ~ocaml_version ~opam_commit service =
7475 lower_bound = false ;
7576 }
7677 in
77- let job = Buffer. create 100 in
78- Capnp_rpc_lwt.Capability. with_ref (job_log job) @@ fun log ->
78+ Capnp_rpc_lwt.Capability. with_ref (job_log stderr) @@ fun log ->
7979 let + response = Solver_service_api.Solver. solve service ~log request in
8080 match response with
81- | Ok selection ->
82- let packages = (List. hd @@ selection).packages in
83- Fmt. pr " opam install %a" Fmt. (list ~sep: (Fmt. any " " ) string ) packages
84- | Error (`Msg m ) ->
85- print_endline (Buffer. contents job);
86- Fmt. failwith " Solver service failed with: %s" m
81+ | Ok selections ->
82+ selections
83+ |> List. iter (fun selection ->
84+ let packages =
85+ selection.Solver_service_api.Worker.Selection. packages
86+ in
87+ Fmt. pr " opam install %a"
88+ Fmt. (list ~sep: (Fmt. any " " ) string )
89+ packages)
90+ | Error (`Msg m ) -> Fmt. failwith " Solver service failed with: %s" m
8791 | Error `Cancelled -> Fmt. failwith " Job Cancelled"
8892
8993let connect package version ocaml_version opam_commit uri =
@@ -107,7 +111,7 @@ let ocaml_version =
107111
108112let opam_commit =
109113 Arg. value
110- @@ Arg. (opt string " 61c80509aec809b94b4ff7a505235f1ba605c756 " )
114+ @@ Arg. (opt string " 68755fe0f8ed7cc42b6403f77d0f7c01b4a6133b " )
111115 @@ Arg. info [ " commit" ] ~docv: " COMMIT"
112116 ~doc: " The commit SHA to use for opam-repository"
113117
0 commit comments