From 21f429caf8c8cb4248457c16abaf0ad4f51c974a Mon Sep 17 00:00:00 2001 From: hallgren Date: Wed, 20 Aug 2014 17:47:08 +0000 Subject: Add lifted directory operations in GF.System.Directory to eliminate the need for liftIO in various places --- src/compiler/GF/System/Directory.hs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/compiler/GF/System') diff --git a/src/compiler/GF/System/Directory.hs b/src/compiler/GF/System/Directory.hs index 3ee1f3550..3cd8a8ef6 100644 --- a/src/compiler/GF/System/Directory.hs +++ b/src/compiler/GF/System/Directory.hs @@ -1,7 +1,19 @@ -- | Isolate backwards incompatible library changes to 'getModificationTime' -module GF.System.Directory(getModificationTime,module D) where +-- and provide lifted versions of some directory operations +module GF.System.Directory(module GF.System.Directory,module D) where +import Control.Monad.Trans(MonadIO(..)) import qualified System.Directory as D -import System.Directory as D hiding (getModificationTime) +import System.Directory as D + hiding (doesDirectoryExist,doesFileExist,getModificationTime, + getCurrentDirectory,getDirectoryContents,removeFile) import Data.Time.Compat -getModificationTime path = fmap toUTCTime (D.getModificationTime path) +doesDirectoryExist path = liftIO $ D.doesDirectoryExist path +doesFileExist path = liftIO $ D.doesFileExist path +getModificationTime path = liftIO $ fmap toUTCTime (D.getModificationTime path) +getDirectoryContents path = liftIO $ D.getDirectoryContents path + +getCurrentDirectory :: MonadIO io => io FilePath +getCurrentDirectory = liftIO D.getCurrentDirectory + +removeFile path = liftIO $ D.removeFile path \ No newline at end of file -- cgit v1.2.3