Skip to content

Commit cdb3a81

Browse files
committed
Support Fmt.cli and Logs.cli
1 parent 9916ece commit cdb3a81

2 files changed

Lines changed: 19 additions & 22 deletions

File tree

dune

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
(name main)
44
(package obuilder)
55
(preprocess (pps ppx_deriving.show))
6-
(libraries lwt lwt.unix fmt tar-unix obuilder fmt.tty cmdliner logs.fmt))
6+
(libraries lwt lwt.unix fmt fmt.cli fmt.tty tar-unix obuilder cmdliner logs.fmt logs.cli))

main.ml

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
open Lwt.Infix
22

3-
let () =
4-
Logs.set_reporter (Logs_fmt.reporter ())
5-
63
let ( / ) = Filename.concat
74

85
module 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

8175
open 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+
8387
let spec_file =
8488
Arg.(required & opt (some file) None & info
8589
~doc:"Path of build spec file"
@@ -115,12 +119,12 @@ let secrets =
115119

116120
let 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

121125
let 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

126130
let buildkit =
@@ -130,17 +134,12 @@ let buildkit =
130134

131135
let 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-
141140
let 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

146145
let cmds = [build; delete; dockerfile; healthcheck]
@@ -153,6 +152,4 @@ let default_cmd =
153152
let term_exit (x : unit Term.result) = Term.exit x
154153

155154
let () =
156-
(* Logs.(set_level (Some Info)); *)
157-
Fmt_tty.setup_std_outputs ();
158155
term_exit @@ Term.eval_choice default_cmd cmds

0 commit comments

Comments
 (0)