module RawFilePath.Directory.Internal where import RawFilePath.Import import qualified System.Posix.ByteString as U ioeAddLocation :: IOError -> String -> IOError ioeAddLocation e loc = ioeSetLocation e newLoc where newLoc = loc <> if null oldLoc then "" else ":" <> oldLoc oldLoc = ioeGetLocation e data FileType = File | SymbolicLink | Directory | DirectoryLink deriving (Bounded, Enum, Eq, Ord, Read, Show) fileTypeFromMetadata :: U.FileStatus -> FileType fileTypeFromMetadata stat | U.isSymbolicLink stat = SymbolicLink | U.isDirectory stat = Directory | otherwise = File