this repo has no description
at main 26 lines 780 B view raw
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