summaryrefslogtreecommitdiff
path: root/Utility/Directory.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-03-11 18:12:36 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-03-11 18:12:36 -0400
commit6fd0c0bfecb8e3585aecfa946515d89c8d443441 (patch)
treec667cd8381088b2483f5026d27584779b3c734ba /Utility/Directory.hs
parentb3256946457ec8a2da056573bf49593b225adbd8 (diff)
move
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 ()