-----------------------------------------------------------------------------
--- $Id: DriverUtil.hs,v 1.36 2003/03/04 10:39:58 simonmar Exp $
+-- $Id: DriverUtil.hs,v 1.38 2003/06/04 15:47:59 simonmar Exp $
--
-- Utils for the driver
--
import Panic
import Config ( cLeadingUnderscore )
-import EXCEPTION ( Exception, finally, throwDyn, catchDyn )
+import EXCEPTION ( Exception(..), finally, throwDyn, catchDyn, throw )
import qualified EXCEPTION as Exception
import DYNAMIC
import DATA_IOREF ( IORef, readIORef, writeIORef )
-import Directory ( getDirectoryContents, doesDirectoryExist )
+import Directory
import IO
import List
import Char
)
-----------------------------------------------------------------------------
+-- Create a hierarchy of directories
+
+createDirectoryHierarchy :: FilePath -> IO ()
+createDirectoryHierarchy dir = do
+ b <- doesDirectoryExist dir
+ when (not b) $ do
+ createDirectoryHierarchy (directoryOf dir)
+ createDirectory dir
+
+-----------------------------------------------------------------------------
-- Verify that the 'dirname' portion of a FilePath exists.
--
doesDirNameExist :: FilePath -> IO Bool