summaryrefslogtreecommitdiff
path: root/Utility/Directory.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Utility/Directory.hs')
-rw-r--r--Utility/Directory.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/Utility/Directory.hs b/Utility/Directory.hs
index e7b7c442b..40e65d634 100644
--- a/Utility/Directory.hs
+++ b/Utility/Directory.hs
@@ -13,11 +13,22 @@ import System.Directory
import Control.Exception (throw)
import Control.Monad
import Control.Monad.IfElse
+import System.FilePath
+import Control.Applicative
import Utility.SafeCommand
import Utility.TempFile
import Utility.Exception
+{- Lists the contents of a directory.
+ - Unlike getDirectoryContents, paths are not relative to the directory. -}
+dirContents :: FilePath -> IO [FilePath]
+dirContents d = map (d </>) . filter notcruft <$> getDirectoryContents d
+ where
+ notcruft "." = False
+ notcruft ".." = False
+ notcruft _ = True
+
{- Moves one filename to another.
- First tries a rename, but falls back to moving across devices if needed. -}
moveFile :: FilePath -> FilePath -> IO ()