]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/matitac.ml
Use of standard OCaml syntax
[helm.git] / matita / matita / matitac.ml
index 67a1742f07dc4efbdd3daaa0f421e1c580a1742e..c2291d5754c60cc5cec2619a107a74acb5d98448 100644 (file)
@@ -44,20 +44,28 @@ let main_compiler () =
          prerr_endline ("Too many roots found:\n\t" ^ String.concat "\n\t" roots);
          prerr_endline ("\nEnter one of these directories and retry");
          exit 1);
-    | _ -> targets
+    | _ ->
+      let map targets file =
+          if HExtlib.is_dir file then
+             let files = HExtlib.find ~test:(fun path -> Filename.check_suffix path ".ma") file in
+             files @ targets
+          else file :: targets
+      in
+      List.fold_left map [] (List.rev targets)
   in
   (* must be called after init since args are set by cmdline parsing *)
   let system_mode =  Helm_registry.get_bool "matita.system" in
   if system_mode then HLog.message "Compiling in system space";
   (* here we go *)
-  if not (Helm_registry.get_bool "matita.verbose") then MatitaMisc.shutup ();
+  if not (Helm_registry.get_bool "matita.verbose") then MatitaMiscCli.shutup ();
   if List.fold_left
    (fun b t ->
      (try
        ignore (MatitaEngine.assert_ng ~include_paths:[] t); true
       with
-       MatitaEngine.FailureCompiling _ -> false) && b
-     ) true targets
+       MatitaEngine.FailureCompiling (_,exn) ->
+        HLog.error (snd (MatitaExcPp.to_string exn)); false) && b
+   ) true targets
   then 
     (HLog.message "Compilation successful"; 0)
   else
@@ -66,9 +74,7 @@ let main_compiler () =
 
 let main () =
   Sys.catch_break true;
-  let bin = Filename.basename Sys.argv.(0) in
-  if Pcre.pmatch ~pat:"^matitaclean"  bin then Matitaclean.main ()
-  else exit (main_compiler ())
+  exit (main_compiler ())
 ;;
 
 let _ = main ()