+let _ =
+ 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);
+ let status = run_script fname in
+ 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
+ let proof_status = status.proof_status in
+ if proof_status <> MatitaTypes.No_proof then
+ begin
+ MatitaLog.error
+ "there are still incomplete proofs at the end of the script";
+ exit(-1)
+ end
+ else
+ begin
+ MatitaLog.message
+ (sprintf "execution of %s completed in %s." fname (hou^min^sec)) ;
+ exit(0)
+ end
+ ) scripts
+ with Sys.Break ->
+ MatitaLog.error "user break!";
+ exit (-1)