comparison src/compiler.sml @ 1700:2b04104896a8

Delete C temporary directories, even if other files wind up there
author Adam Chlipala <adam@chlipala.net>
date Tue, 13 Mar 2012 20:17:23 -0400
parents 3cfc79f92db7
children 7b9775d4a8ce
comparison
equal deleted inserted replaced
1699:3320eba6bad5 1700:2b04104896a8
1423 val cname = OS.Path.joinDirFile {dir = dir, file = "webapp.c"} 1423 val cname = OS.Path.joinDirFile {dir = dir, file = "webapp.c"}
1424 val oname = OS.Path.joinDirFile {dir = dir, file = "webapp.o"} 1424 val oname = OS.Path.joinDirFile {dir = dir, file = "webapp.o"}
1425 in 1425 in
1426 OS.FileSys.mkDir dir; 1426 OS.FileSys.mkDir dir;
1427 (cname, oname, 1427 (cname, oname,
1428 fn () => (OS.FileSys.remove cname; 1428 fn () => (if OS.Process.isSuccess (OS.Process.system ("rm -rf " ^ dir)) then
1429 OS.FileSys.remove oname; 1429 ()
1430 OS.FileSys.rmDir dir) 1430 else
1431 handle OS.SysErr _ => OS.FileSys.rmDir dir) 1431 raise Fail ("Unable to delete temporary directory " ^ dir)))
1432 end 1432 end
1433 val ename = #exe job 1433 val ename = #exe job
1434 in 1434 in
1435 let 1435 let
1436 val outf = TextIO.openOut cname 1436 val outf = TextIO.openOut cname