From 1730b7da42dd6f011017798d213da5ca71f3881b Mon Sep 17 00:00:00 2001 From: Mathieu Barbin Date: Fri, 14 Feb 2025 12:22:51 +0100 Subject: [PATCH] Simplify dependencies in this gen-dune --- test/bop2c/gen-dune/dune | 5 +++-- test/bop2c/gen-dune/main.ml | 27 ++++++++++++++++----------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/test/bop2c/gen-dune/dune b/test/bop2c/gen-dune/dune index 5ef242c..ed81b4d 100644 --- a/test/bop2c/gen-dune/dune +++ b/test/bop2c/gen-dune/dune @@ -9,14 +9,15 @@ -open Base -open + Fpath_base + -open Cmdlang) (libraries auto-format base cmdlang cmdlang-cmdliner-runner - eio - eio_main + fpath-base parsing-utils) (lint (pps ppx_js_style -check-doc-comments)) diff --git a/test/bop2c/gen-dune/main.ml b/test/bop2c/gen-dune/main.ml index 91e0127..e62539d 100644 --- a/test/bop2c/gen-dune/main.ml +++ b/test/bop2c/gen-dune/main.ml @@ -8,22 +8,27 @@ ]} *) +let find_files_in_cwd_by_extensions ~cwd ~extensions = + Stdlib.Sys.readdir cwd + |> Array.map ~f:Fpath.v + |> Array.to_list + |> List.filter ~f:(fun file -> + Stdlib.Sys.is_regular_file (Fpath.to_string file) + && List.exists extensions ~f:(fun extension -> Fpath.has_ext extension file)) + |> List.sort ~compare:Fpath.compare +;; + let gen_dune_cmd = Command.make ~summary: "generate dune stanza for all c files present in the cwd to be generated by bopkit" (let%map_open.Command () = Arg.return () in - Eio_main.run - @@ fun env -> - let files = - Auto_format.find_files_in_cwd_by_extensions - ~cwd:(Eio.Stdenv.cwd env) - ~extensions:[ "bop" ] - in + let cwd = Stdlib.Sys.getcwd () in + let files = find_files_in_cwd_by_extensions ~cwd ~extensions:[ "bop" ] in let generate_rules ~file = - let file_prefix = Stdlib.Filename.chop_extension file in + let file_prefix = Fpath.rem_ext file in let open Sexp in - let c_file = file_prefix ^ ".c" in + let c_file = Fpath.to_string file_prefix ^ ".c" in let list s = List s and atom s = Atom s in let atoms s = List.map s ~f:atom in @@ -42,7 +47,7 @@ let gen_dune_cmd = [ atom "run" ; atom "%{bin:bopkit}" ; atom "bop2c" - ; atom (Printf.sprintf "%%{dep:%s}" file) + ; atom (Printf.sprintf "%%{dep:%s}" (Fpath.to_string file)) ] ] ] @@ -51,7 +56,7 @@ let gen_dune_cmd = let gcc = list [ atom "rule" - ; list (atoms [ "target"; file_prefix ^ ".exe" ]) + ; list (atoms [ "target"; Fpath.to_string file_prefix ^ ".exe" ]) ; list [ atom "action" ; list