X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Fmatitac.ml;h=b3767c5397cf3477ad62c607f9df011a0e8d48bb;hb=abea1aa1f1e152be1809145c962fa6588728d6f7;hp=607fe703b065c1f122b0c17309c5cad997776736;hpb=f8b2057d349dd9903ad8b1dd05f894cb0fa14378;p=helm.git diff --git a/helm/matita/matitac.ml b/helm/matita/matitac.ml index 607fe703b..b3767c539 100644 --- a/helm/matita/matitac.ml +++ b/helm/matita/matitac.ml @@ -50,7 +50,6 @@ let scripts = List.rev !acc let run_script fname = - MatitaLog.message (sprintf "execution of %s started:" fname); let is = Stream.of_channel (match fname with @@ -84,10 +83,29 @@ let run_script fname = raise exn let _ = - List.iter (fun fname -> + at_exit + (fun () -> + Http_getter_logger.log "Sync map tree to disk..."; + Http_getter.sync_dump_file (); + print_endline "\nThanks for using Matita!\n"); + Sys.catch_break true; + try + List.iter (fun fname -> + let time = Unix.time () in + MatitaLog.message (sprintf "execution of %s started:" fname); run_script fname; - MatitaLog.message (sprintf "execution of %s completed." fname)) scripts; - Http_getter.sync_dump_file (); - exit(0) - - + let elapsed = Unix.time () -. time in + let tm = Unix.gmtime elapsed in + let sec = + if tm.Unix.tm_sec > 0 then (string_of_int tm.Unix.tm_sec ^ "''") else "" + in + let min = + if tm.Unix.tm_min > 0 then (string_of_int tm.Unix.tm_min ^ "' ") else "" + in + let hou = + if tm.Unix.tm_hour > 0 then (string_of_int tm.Unix.tm_hour ^ "h ") else "" + in + MatitaLog.message + (sprintf "execution of %s completed in %s." fname (hou^min^sec))) scripts; + exit(0) + with Sys.Break -> exit (-1)