| None ->
dump_development dev;
rebuild_makefile dev;
+ developments := dev :: !developments;
Some dev
let make chdir args =
let old = Unix.getcwd () in
- Unix.chdir chdir;
-(* prerr_endline (String.concat " " ("make"::args));*)
- let rc = Unix.system (String.concat " " ("make"::args)) in
- Unix.chdir old;
- match rc with
- | Unix.WEXITED 0 -> true
- | Unix.WEXITED i -> logger `Error ("make returned " ^ string_of_int i);false
- | _ -> logger `Error "make STOPPED or SIGNALED!";false
+ try
+ Unix.chdir chdir;
+ let rc = Unix.system (String.concat " " ("make"::args)) in
+ Unix.chdir old;
+ match rc with
+ | Unix.WEXITED 0 -> true
+ | Unix.WEXITED i -> logger `Error ("make returned " ^ string_of_int i);false
+ | _ -> logger `Error "make STOPPED or SIGNALED!";false
+ with Unix.Unix_error (_,cmd,err) ->
+ logger `Warning ("Unix Error: " ^ cmd ^ ": " ^ err);
+ false
let call_make development target =
rebuild_makefile development;
unlink (pool () ^ development.name ^ rootfile);
unlink (pool () ^ development.name ^ "/depend");
unlink (pool () ^ development.name ^ "/depend.short");
- rmdir (pool () ^ development.name)
+ rmdir (pool () ^ development.name);
+ developments :=
+ List.filter (fun d -> d.name <> development.name) !developments
in
if not(clean_development development) then
begin
end;
delete_development development
-
+let root_for_development development = development.root
+let name_for_development development = development.name
+