this repo has no description
1#use "topfind" ;;
2#require "unix";;
3
4
5let rec iter_cmi ~f dir_handle =
6 match Unix.readdir dir_handle with
7 | exception End_of_file -> ()
8 | file ->
9 if Filename.extension file = ".cmi" then
10 f file;
11 iter_cmi ~f dir_handle
12
13let () =
14 let cwd = Unix.getcwd () in
15 let stdlib = Filename.concat cwd "stdlib" in
16 let out = open_out "static_files.ml" in
17
18 Printf.fprintf out "open Protocol\nlet stdlib_cmis = [";
19 let dir = Unix.opendir stdlib in
20 iter_cmi ~f:(fun file ->
21 let fullpath = Filename.concat stdlib file in
22 let module_name = Filename.basename file |> String.capitalize_ascii |> Filename.remove_extension in
23 Printf.fprintf out "{sc_name=%S; sc_content=[%%blob %S]};" module_name fullpath) dir;
24 Printf.fprintf out "]\n";
25
26 close_out out