open Unix;; open Sys;; let program = "latex";; (* questo e' il nome dell'esguibile *) let delay = 1;; (* questo e' il tempo della sleep *) let volte = ref 0;; let ricomp file = try if(fork() = 0) then (execvp program [|program; file^".tex"|]; print_string "errore nella exec";print_newline()) else let res = wait() in (print_string "Recompiled!";print_newline();volte:=!volte+1) with Unix_error(e,s,a) -> print_string (error_message e); print_newline();; let modificato file = try (stat (file^".tex")).st_mtime with Unix_error(e,s,a) -> print_string (error_message e); print_newline(); (-1);; let observ filename = try let tempo = ref (modificato filename) in while(true) do begin let nuovotempo = modificato filename in if (nuovotempo <> !tempo) then ((ricomp filename);tempo := (nuovotempo)); sleep(delay) end done with Unix_error(e,s,a) -> print_string (error_message e); print_newline();; (print_string "Ricompilazione automatica del file "; print_string (argv.(1)^".tex ogni ");print_int delay; print_string " secondi";print_newline());; observ argv.(1);;