]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/library/libraryNoDb.ml
Huge reorganization of matita and ocaml.
[helm.git] / helm / ocaml / library / libraryNoDb.ml
index 12a2e96da4cc557a41398576d720ce56bdc5e200..0a03a4a7e4ed6f480a56ab42efcf6b5f0b634d59 100644 (file)
@@ -33,7 +33,6 @@ let magic = 1
 
 type metadata =
   | Dependency of string  (* baseuri without trailing slash *)
-  | Baseuri of string 
 
 let eq_metadata (m1:metadata) (m2:metadata) = m1 = m2
 
@@ -48,13 +47,18 @@ let marshal_flags = []
  *)
 
 let save_metadata ~fname metadata =
-  let oc = open_out fname in
-  let marshalled = Marshal.to_string metadata marshal_flags in
-  let checksum = Hashtbl.hash marshalled in
-  output_binary_int oc magic;
-  output_binary_int oc checksum;
-  output_string oc marshalled;
-  close_out oc
+ let ensure_path_exists path =
+   let dir = Filename.dirname path in
+   HExtlib.mkdir dir
+ in
+ ensure_path_exists fname;
+ let oc = open_out fname in
+ let marshalled = Marshal.to_string metadata marshal_flags in
+ let checksum = Hashtbl.hash marshalled in
+ output_binary_int oc magic;
+ output_binary_int oc checksum;
+ output_string oc marshalled;
+ close_out oc
 
 let load_metadata ~fname =
   let ic = open_in fname in