11open Lwt.Infix
22
3- let () =
4- Logs. set_reporter (Logs_fmt. reporter () )
5-
63let ( / ) = Filename. concat
74
85module Sandbox = Obuilder. Runc_sandbox
@@ -29,8 +26,7 @@ let read_whole_file path =
2926 let len = in_channel_length ic in
3027 really_input_string ic len
3128
32-
33- let build store spec conf src_dir secrets =
29+ let build () store spec conf src_dir secrets =
3430 Lwt_main. run begin
3531 create_builder store conf >> = fun (Builder ((module Builder), builder )) ->
3632 let spec =
@@ -53,9 +49,7 @@ let build store spec conf src_dir secrets =
5349 exit 1
5450 end
5551
56- let healthcheck verbose store conf =
57- if verbose then
58- Logs.Src. set_level Obuilder. log_src (Some Logs. Info );
52+ let healthcheck () store conf =
5953 Lwt_main. run begin
6054 create_builder store conf >> = fun (Builder ((module Builder), builder )) ->
6155 Builder. healthcheck builder > |= function
@@ -66,20 +60,30 @@ let healthcheck verbose store conf =
6660 Fmt. pr " Healthcheck passed@."
6761 end
6862
69- let delete store conf id =
63+ let delete () store conf id =
7064 Lwt_main. run begin
7165 create_builder store conf >> = fun (Builder ((module Builder), builder )) ->
7266 Builder. delete builder id ~log: (fun id -> Fmt. pr " Removing %s@." id)
7367 end
7468
75- let dockerfile buildkit spec =
69+ let dockerfile () buildkit spec =
7670 Sexplib.Sexp. load_sexp spec
7771 |> Obuilder_spec. t_of_sexp
7872 |> Obuilder_spec.Docker. dockerfile_of_spec ~buildkit
7973 |> print_endline
8074
8175open Cmdliner
8276
77+ let setup_log style_renderer level =
78+ Fmt_tty. setup_std_outputs ?style_renderer () ;
79+ Logs. set_level level;
80+ Logs.Src. set_level Obuilder. log_src level;
81+ Logs. set_reporter (Logs_fmt. reporter () );
82+ ()
83+
84+ let setup_log =
85+ Term. (const setup_log $ Fmt_cli. style_renderer () $ Logs_cli. level () )
86+
8387let spec_file =
8488 Arg. (required & opt (some file) None & info
8589 ~doc: " Path of build spec file"
@@ -115,12 +119,12 @@ let secrets =
115119
116120let build =
117121 let doc = " Build a spec file." in
118- Term. (const build $ store $ spec_file $ Sandbox. cmdliner $ src_dir $ secrets),
122+ Term. (const build $ setup_log $ store $ spec_file $ Sandbox. cmdliner $ src_dir $ secrets),
119123 Term. info " build" ~doc
120124
121125let delete =
122126 let doc = " Recursively delete a cached build result." in
123- Term. (const delete $ store $ Sandbox. cmdliner $ id),
127+ Term. (const delete $ setup_log $ store $ Sandbox. cmdliner $ id),
124128 Term. info " delete" ~doc
125129
126130let buildkit =
@@ -130,17 +134,12 @@ let buildkit =
130134
131135let dockerfile =
132136 let doc = " Convert a spec to Dockerfile format" in
133- Term. (const dockerfile $ buildkit $ spec_file),
137+ Term. (const dockerfile $ setup_log $ buildkit $ spec_file),
134138 Term. info " dockerfile" ~doc
135139
136- let verbose =
137- Arg. (value & flag & info
138- ~doc: " Enable verbose logging"
139- [" verbose" ])
140-
141140let healthcheck =
142141 let doc = " Perform a self-test" in
143- Term. (const healthcheck $ verbose $ store $ Sandbox. cmdliner),
142+ Term. (const healthcheck $ setup_log $ store $ Sandbox. cmdliner),
144143 Term. info " healthcheck" ~doc
145144
146145let cmds = [build; delete; dockerfile; healthcheck]
@@ -153,6 +152,4 @@ let default_cmd =
153152let term_exit (x : unit Term.result ) = Term. exit x
154153
155154let () =
156- (* Logs.(set_level (Some Info)); *)
157- Fmt_tty. setup_std_outputs () ;
158155 term_exit @@ Term. eval_choice default_cmd cmds
0 commit comments