1616
1717let run (`Setup () ) (`Prelude prelude ) (`Directories dirs ) =
1818 let buffer = Buffer. create 1024 in
19- let line fmt = Printf. bprintf buffer (fmt ^^ " \n " ) in
20- let list l =
21- Printf. sprintf " [%s] \n "
22- ( String. concat " ; " (List. map ( Printf. sprintf " %S " ) l) )
19+ let ppf = Format. formatter_of_buffer buffer in
20+ let line fmt = Fmt. kpf ( fun ppf -> Fmt. string ppf " \n " ) ppf fmt in
21+ let pp_list ppf =
22+ Fmt. pf ppf " [%a] \n " (Fmt. list ~sep: ( Fmt. any " ; " ) Fmt.Dump. string )
2323 in
24+
25+ let pp_ocaml_env ppf = function
26+ | Mdx.Ocaml_env. Default -> Fmt. string ppf " Mdx.Ocaml_env.Default"
27+ | Mdx.Ocaml_env. User_defined s ->
28+ Fmt. pf ppf " (Mdx.Ocaml_env.User_defined %S)" s
29+ in
30+
31+ let pp_env ppf = function
32+ | `All -> Fmt. string ppf " `All"
33+ | `One ocaml_env -> Fmt. pf ppf " (`One %a)" pp_ocaml_env ocaml_env
34+ in
35+
36+ let pp_prelude ppf (env , filename ) =
37+ Fmt. pf ppf " (%a, %S)" pp_env env filename
38+ in
39+
40+ let pp_preludes ppf preludes =
41+ Fmt. pf ppf " [%a]\n " (Fmt. list ~sep: (Fmt. any " ; " ) pp_prelude) preludes
42+ in
43+
2444 line " let run_exn_defaults =" ;
2545 line " let open Mdx_test in" ;
2646 line " let packages =" ;
@@ -46,13 +66,14 @@ let run (`Setup ()) (`Prelude prelude) (`Directories dirs) =
4666 line " ~output:(Some `Stdout)" ;
4767
4868 line " let file = Sys.argv.(1)" ;
49- line " let prelude = %s " ( list prelude) ;
69+ line " let prelude = %a " pp_preludes prelude;
5070 line " let directives = List.map (fun path ->" ;
51- line " Mdx_top.Directory path) %s " ( list dirs) ;
71+ line " Mdx_top.Directory path) %a " pp_list dirs;
5272 line " let _ = run_exn_defaults" ;
5373 line " ~file" ;
5474 line " ~prelude" ;
5575 line " ~directives" ;
76+ Fmt. flush ppf () ;
5677 Buffer. output_buffer stdout buffer;
5778 0
5879
0 commit comments