module Directory (createDirectory) where import NHC.FFI import Numeric (readOct) import Monad (when) foreign import ccall mkdir :: PackedString -> Int -> IO Int createDirectory :: FilePath -> IO () createDirectory fp = do val <- mkdir (toCString fp) (octal "0755") when (val == -1) (do errno <- getErrNo throwIOError "createDirectory" (Just fp) Nothing errno) octal :: String -> Int octal s = case readOct s of [(num,"")] -> num _ -> 0