Add lifted directory operations in GF.System.Directory to eliminate the need for liftIO in various places

This commit is contained in:
hallgren
2014-08-20 17:47:08 +00:00
parent 73310add9a
commit 21f429caf8
5 changed files with 30 additions and 18 deletions

View File

@@ -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