List.rev !acc
let run_script fname =
- MatitaLog.message (sprintf "execution of %s started:" fname);
let is =
Stream.of_channel
(match fname with
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)