filepather-0.4.0: src/System/FilePath/FilePather/Posix.hs
{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE NoImplicitPrelude #-}
module System.FilePath.FilePather.Posix(
splitExtension
, takeExtension
, replaceExtension
, dropExtension
, addExtension
, hasExtension
, splitExtensions
, dropExtensions
, takeExtensions
, replaceExtensions
, isExtensionOf
, stripExtension
, splitFileName
, takeFileName
, replaceFileName
, dropFileName
, takeBaseName
, replaceBaseName
, takeDirectory
, replaceDirectory
, combine
, splitPath
, joinPath
, splitDirectories
, splitDrive
, joinDrive
, takeDrive
, hasDrive
, dropDrive
, isDrive
, hasTrailingPathSeparator
, addTrailingPathSeparator
, dropTrailingPathSeparator
, normalise
, equalFilePath
, makeRelative
, isRelative
, isAbsolute
, isValid
, makeValid
, module SFP
) where
import Control.Applicative ( Applicative )
import Control.Category((.))
import Control.Lens ( (#) )
import Data.String( String )
import Data.Bool( Bool )
import Data.Maybe ( Maybe )
import qualified System.FilePath as FP
import System.FilePath as SFP(FilePath, pathSeparator, pathSeparators, isPathSeparator, extSeparator, isExtSeparator, splitSearchPath, (-<.>), (</>))
import System.FilePath.FilePather.ToFilePath
( ToFilePath, toFilePath )
import System.FilePath.FilePather.ReadFilePath
( ReadFilePathT, liftReadFilePath )
splitExtension ::
Applicative f =>
ReadFilePathT f (String, String)
splitExtension =
liftReadFilePath FP.splitExtension
takeExtension ::
Applicative f =>
ReadFilePathT f String
takeExtension =
liftReadFilePath FP.takeExtension
replaceExtension ::
Applicative f =>
ReadFilePathT f (String -> FilePath)
replaceExtension =
liftReadFilePath FP.replaceExtension
dropExtension ::
Applicative f =>
ReadFilePathT f FilePath
dropExtension =
liftReadFilePath FP.dropExtensions
addExtension ::
Applicative f =>
ReadFilePathT f (String -> FilePath)
addExtension =
liftReadFilePath FP.addExtension
hasExtension ::
Applicative f =>
ReadFilePathT f Bool
hasExtension =
liftReadFilePath FP.hasExtension
splitExtensions ::
Applicative f =>
ReadFilePathT f (FilePath, String)
splitExtensions =
liftReadFilePath FP.splitExtensions
dropExtensions ::
Applicative f =>
ReadFilePathT f FilePath
dropExtensions =
liftReadFilePath FP.dropExtensions
takeExtensions ::
Applicative f =>
ReadFilePathT f String
takeExtensions =
liftReadFilePath FP.takeExtensions
replaceExtensions ::
Applicative f =>
ReadFilePathT f (String -> FilePath)
replaceExtensions =
liftReadFilePath FP.replaceExtensions
isExtensionOf ::
Applicative f =>
String
-> ReadFilePathT f Bool
isExtensionOf =
liftReadFilePath . FP.isExtensionOf
stripExtension ::
Applicative f =>
String
-> ReadFilePathT f (Maybe FilePath)
stripExtension =
liftReadFilePath . FP.stripExtension
splitFileName ::
Applicative f =>
ReadFilePathT f (String, String)
splitFileName =
liftReadFilePath FP.splitFileName
takeFileName ::
Applicative f =>
ReadFilePathT f String
takeFileName =
liftReadFilePath FP.takeFileName
replaceFileName ::
Applicative f =>
ReadFilePathT f (String -> FilePath)
replaceFileName =
liftReadFilePath FP.replaceFileName
dropFileName ::
Applicative f =>
ReadFilePathT f FilePath
dropFileName =
liftReadFilePath FP.dropFileName
takeBaseName ::
Applicative f =>
ReadFilePathT f String
takeBaseName =
liftReadFilePath FP.takeBaseName
replaceBaseName ::
Applicative f =>
ReadFilePathT f (String -> FilePath)
replaceBaseName =
liftReadFilePath FP.replaceBaseName
takeDirectory ::
Applicative f =>
ReadFilePathT f FilePath
takeDirectory =
liftReadFilePath FP.takeDirectory
replaceDirectory ::
Applicative f =>
ReadFilePathT f (String -> FilePath)
replaceDirectory =
liftReadFilePath FP.replaceDirectory
combine ::
Applicative f =>
ReadFilePathT f (FilePath -> FilePath)
combine =
liftReadFilePath FP.combine
splitPath ::
Applicative f =>
ReadFilePathT f [FilePath]
splitPath =
liftReadFilePath FP.splitPath
joinPath ::
ToFilePath [FilePath]
joinPath =
toFilePath # FP.joinPath
splitDirectories ::
Applicative f =>
ReadFilePathT f [FilePath]
splitDirectories =
liftReadFilePath FP.splitDirectories
splitDrive ::
Applicative f =>
ReadFilePathT f (FilePath, FilePath)
splitDrive =
liftReadFilePath FP.splitDrive
joinDrive ::
Applicative f =>
ReadFilePathT f (FilePath -> FilePath)
joinDrive =
liftReadFilePath FP.joinDrive
takeDrive ::
Applicative f =>
ReadFilePathT f FilePath
takeDrive =
liftReadFilePath FP.takeDrive
hasDrive ::
Applicative f =>
ReadFilePathT f Bool
hasDrive =
liftReadFilePath FP.hasDrive
dropDrive ::
Applicative f =>
ReadFilePathT f FilePath
dropDrive =
liftReadFilePath FP.dropDrive
isDrive ::
Applicative f =>
ReadFilePathT f Bool
isDrive =
liftReadFilePath FP.isDrive
hasTrailingPathSeparator ::
Applicative f =>
ReadFilePathT f Bool
hasTrailingPathSeparator =
liftReadFilePath FP.hasTrailingPathSeparator
addTrailingPathSeparator ::
Applicative f =>
ReadFilePathT f FilePath
addTrailingPathSeparator =
liftReadFilePath FP.addTrailingPathSeparator
dropTrailingPathSeparator ::
Applicative f =>
ReadFilePathT f FilePath
dropTrailingPathSeparator =
liftReadFilePath FP.dropTrailingPathSeparator
normalise ::
Applicative f =>
ReadFilePathT f FilePath
normalise =
liftReadFilePath FP.normalise
equalFilePath ::
Applicative f =>
ReadFilePathT f (FilePath -> Bool)
equalFilePath =
liftReadFilePath FP.equalFilePath
makeRelative ::
Applicative f =>
ReadFilePathT f (FilePath -> FilePath)
makeRelative =
liftReadFilePath FP.makeRelative
isRelative ::
Applicative f =>
ReadFilePathT f Bool
isRelative =
liftReadFilePath FP.isRelative
isAbsolute ::
Applicative f =>
ReadFilePathT f Bool
isAbsolute =
liftReadFilePath FP.isAbsolute
isValid ::
Applicative f =>
ReadFilePathT f Bool
isValid =
liftReadFilePath FP.isValid
makeValid ::
Applicative f =>
ReadFilePathT f FilePath
makeValid =
liftReadFilePath FP.makeValid