filepather-0.4.1: src/System/FilePath/FilePather/Directory.hs
{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE NoImplicitPrelude #-}
module System.FilePath.FilePather.Directory(
createDirectory
, createDirectoryIfMissing
, removeDirectory
, removeDirectoryRecursive
, removePathForcibly
, renameDirectory
, listDirectory
, getDirectoryContents
, withCurrentDirectory
, getXdgDirectory
, getAppUserDataDirectory
, removeFile
, renameFile
, renamePath
, copyFile
, copyFileWithMetadata
, getFileSize
, canonicalizePath
, makeAbsolute
, makeRelativeToCurrentDirectory
, doesPathExist
, doesFileExist
, doesDirectoryExist
, findExecutable
, findExecutables
, findExecutablesInDirectories
, findFile
, findFiles
, findFileWith
, findFilesWith
, createFileLink
, createDirectoryLink
, removeDirectoryLink
, pathIsSymbolicLink
, getSymbolicLinkTarget
, getPermissions
, setPermissions
, copyPermissions
, getAccessTime
, getModificationTime
, setAccessTime
, setModificationTime
, module SD
) where
import Control.Category ( Category((.)) )
import Control.Lens ( over, _Wrapped )
import Data.Maybe ( Maybe )
import Data.Bool ( Bool )
import Data.Time ( UTCTime )
import GHC.Num( Integer )
import qualified System.Directory as D
import System.Directory as SD(getCurrentDirectory, getHomeDirectory, XdgDirectory(..), XdgDirectoryList(..), getXdgDirectoryList, getUserDocumentsDirectory, getTemporaryDirectory, exeExtension, Permissions(..), emptyPermissions, readable, writable, executable, searchable, setOwnerReadable, setOwnerWritable, setOwnerExecutable, setOwnerSearchable)
import System.FilePath.FilePather.ReadFilePath
( ReadFilePathT(..) )
import System.FilePath ( FilePath )
import System.IO ( IO )
createDirectory ::
ReadFilePathT IO ()
createDirectory =
ReadFilePathT D.createDirectory
createDirectoryIfMissing ::
Bool
-> ReadFilePathT IO ()
createDirectoryIfMissing =
ReadFilePathT . D.createDirectoryIfMissing
removeDirectory ::
ReadFilePathT IO ()
removeDirectory =
ReadFilePathT D.removeDirectory
removeDirectoryRecursive ::
ReadFilePathT IO ()
removeDirectoryRecursive =
ReadFilePathT D.removeDirectoryRecursive
removePathForcibly ::
ReadFilePathT IO ()
removePathForcibly =
ReadFilePathT D.removePathForcibly
renameDirectory ::
FilePath
-> ReadFilePathT IO ()
renameDirectory =
ReadFilePathT . D.renameDirectory
listDirectory ::
ReadFilePathT IO [FilePath]
listDirectory =
ReadFilePathT D.listDirectory
getDirectoryContents ::
ReadFilePathT IO [FilePath]
getDirectoryContents =
ReadFilePathT D.listDirectory
withCurrentDirectory ::
IO a
-> ReadFilePathT IO a
withCurrentDirectory io =
ReadFilePathT (`D.withCurrentDirectory` io)
getXdgDirectory ::
XdgDirectory
-> ReadFilePathT IO FilePath
getXdgDirectory xdg =
ReadFilePathT (D.getXdgDirectory xdg)
getAppUserDataDirectory ::
ReadFilePathT IO FilePath
getAppUserDataDirectory =
ReadFilePathT D.getAppUserDataDirectory
removeFile ::
ReadFilePathT IO ()
removeFile =
ReadFilePathT D.removeFile
renameFile ::
FilePath
-> ReadFilePathT IO ()
renameFile =
ReadFilePathT . D.renameFile
renamePath ::
FilePath
-> ReadFilePathT IO ()
renamePath =
ReadFilePathT . D.renamePath
copyFile ::
FilePath
-> ReadFilePathT IO ()
copyFile =
ReadFilePathT . D.copyFile
copyFileWithMetadata ::
FilePath
-> ReadFilePathT IO ()
copyFileWithMetadata =
ReadFilePathT . D.copyFileWithMetadata
getFileSize ::
ReadFilePathT IO Integer
getFileSize =
ReadFilePathT D.getFileSize
canonicalizePath ::
ReadFilePathT IO FilePath
canonicalizePath =
ReadFilePathT D.canonicalizePath
makeAbsolute ::
ReadFilePathT IO FilePath
makeAbsolute =
ReadFilePathT D.makeAbsolute
makeRelativeToCurrentDirectory ::
ReadFilePathT IO FilePath
makeRelativeToCurrentDirectory =
ReadFilePathT D.makeRelativeToCurrentDirectory
doesPathExist ::
ReadFilePathT IO Bool
doesPathExist =
ReadFilePathT D.doesPathExist
doesFileExist ::
ReadFilePathT IO Bool
doesFileExist =
ReadFilePathT D.doesFileExist
doesDirectoryExist ::
ReadFilePathT IO Bool
doesDirectoryExist =
ReadFilePathT D.doesDirectoryExist
findExecutable ::
ReadFilePathT IO (Maybe FilePath)
findExecutable =
ReadFilePathT D.findExecutable
findExecutables ::
ReadFilePathT IO [FilePath]
findExecutables =
ReadFilePathT D.findExecutables
findExecutablesInDirectories ::
[FilePath]
-> ReadFilePathT IO [FilePath]
findExecutablesInDirectories =
ReadFilePathT . D.findExecutablesInDirectories
findFile ::
[FilePath]
-> ReadFilePathT IO (Maybe FilePath)
findFile =
ReadFilePathT . D.findFile
findFiles ::
[FilePath]
-> ReadFilePathT IO [FilePath]
findFiles =
ReadFilePathT . D.findFiles
findFileWith ::
ReadFilePathT IO Bool
-> [FilePath]
-> ReadFilePathT IO (Maybe FilePath)
findFileWith x ps =
over _Wrapped (`D.findFileWith` ps) x
findFilesWith ::
ReadFilePathT IO Bool
-> [FilePath]
-> ReadFilePathT IO [FilePath]
findFilesWith x ps =
over _Wrapped (`D.findFilesWith` ps) x
createFileLink ::
FilePath
-> ReadFilePathT IO ()
createFileLink =
ReadFilePathT . D.createFileLink
createDirectoryLink ::
FilePath
-> ReadFilePathT IO ()
createDirectoryLink =
ReadFilePathT . D.createDirectoryLink
removeDirectoryLink ::
ReadFilePathT IO ()
removeDirectoryLink =
ReadFilePathT D.removeDirectoryLink
pathIsSymbolicLink ::
ReadFilePathT IO Bool
pathIsSymbolicLink =
ReadFilePathT D.pathIsSymbolicLink
getSymbolicLinkTarget ::
ReadFilePathT IO FilePath
getSymbolicLinkTarget =
ReadFilePathT D.getSymbolicLinkTarget
getPermissions ::
ReadFilePathT IO Permissions
getPermissions =
ReadFilePathT D.getPermissions
setPermissions ::
Permissions
-> ReadFilePathT IO ()
setPermissions p =
ReadFilePathT (`D.setPermissions` p)
copyPermissions ::
FilePath
-> ReadFilePathT IO ()
copyPermissions =
ReadFilePathT . D.copyPermissions
getAccessTime ::
ReadFilePathT IO UTCTime
getAccessTime =
ReadFilePathT D.getAccessTime
getModificationTime ::
ReadFilePathT IO UTCTime
getModificationTime =
ReadFilePathT D.getModificationTime
setAccessTime ::
UTCTime
-> ReadFilePathT IO ()
setAccessTime u =
ReadFilePathT (`D.setAccessTime` u)
setModificationTime ::
UTCTime
-> ReadFilePathT IO ()
setModificationTime u =
ReadFilePathT (`D.setModificationTime` u)