-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | High-level, byte-based file and directory path manipulations -- -- High-level, byte-based file and directory path manipulations @package system-filepath @version 0.4.6 -- | High‐level, byte‐based file and directory path manipulations. You -- probably want to import Filesystem.Path.CurrentOS instead, -- since it handles detecting which rules to use in the current -- compilation. module Filesystem.Path data FilePath -- | A file path with no root, directory, or filename empty :: FilePath -- |
-- null p = (p == empty) --null :: FilePath -> Bool -- | Retrieves the FilePath’s root. root :: FilePath -> FilePath -- | Retrieves the FilePath’s directory. If the path is already a -- directory, it is returned unchanged. directory :: FilePath -> FilePath -- | Retrieves the FilePath’s parent directory. parent :: FilePath -> FilePath -- | Retrieve a FilePath’s filename component. -- --
-- filename "foo/bar.txt" == "bar.txt" --filename :: FilePath -> FilePath -- | Retrieve a FilePath’s directory name. This is only the file -- name of the directory, not its full path. -- --
-- dirname "foo/bar/baz.txt" == "bar" -- dirname "/" == "" ---- -- Since: 0.4.1 dirname :: FilePath -> FilePath -- | Retrieve a FilePath’s basename component. -- --
-- basename "foo/bar.txt" == "bar" --basename :: FilePath -> FilePath -- | Test whether a path is absolute. absolute :: FilePath -> Bool -- | Test whether a path is relative. relative :: FilePath -> Bool -- | Appends two FilePaths. If the second path is absolute, it is -- returned unchanged. append :: FilePath -> FilePath -> FilePath -- | An alias for append. (>) :: FilePath -> FilePath -> FilePath -- | A fold over append. concat :: [FilePath] -> FilePath -- | Find the greatest common prefix between a list of FilePaths. commonPrefix :: [FilePath] -> FilePath stripPrefix :: FilePath -> FilePath -> Maybe FilePath -- | Remove "." and ".." directories from a path. -- -- Note that if any of the elements are symbolic links, collapse -- may change which file the path resolves to. -- -- Since: 0.2 collapse :: FilePath -> FilePath -- | Get a FilePath’s last extension, or Nothing if it has no -- extensions. extension :: FilePath -> Maybe Text -- | Get a FilePath’s full extension list. extensions :: FilePath -> [Text] -- | Get whether a FilePath’s last extension is the predicate. hasExtension :: FilePath -> Text -> Bool -- | Append an extension to the end of a FilePath. addExtension :: FilePath -> Text -> FilePath -- | An alias for addExtension. (<.>) :: FilePath -> Text -> FilePath -- | Remove a FilePath’s last extension. dropExtension :: FilePath -> FilePath -- | Replace a FilePath’s last extension. replaceExtension :: FilePath -> Text -> FilePath -- | Append many extensions to the end of a FilePath. addExtensions :: FilePath -> [Text] -> FilePath -- | Remove all extensions from a FilePath. dropExtensions :: FilePath -> FilePath -- | Remove all extensions from a FilePath, and replace them with a -- new list. replaceExtensions :: FilePath -> [Text] -> FilePath -- |
-- splitExtension p = (dropExtension p, extension p) --splitExtension :: FilePath -> (FilePath, Maybe Text) -- |
-- splitExtensions p = (dropExtensions p, extensions p) --splitExtensions :: FilePath -> (FilePath, [Text]) instance Monoid FilePath module Filesystem.Path.Rules data Rules platformFormat -- | Linux, BSD, and other UNIX or UNIX-like operating systems. posix :: Rules ByteString -- | Linux, BSD, and other UNIX or UNIX-like operating systems. -- -- This is a variant of posix for use with GHC 7.2, which tries to -- decode file paths in its IO computations. -- -- Since: 0.3.3 / 0.4.2 posix_ghc702 :: Rules ByteString -- | Linux, BSD, and other UNIX or UNIX-like operating systems. -- -- This is a variant of posix for use with GHC 7.4 or later, which -- tries to decode file paths in its IO computations. -- -- Since: 0.3.7 / 0.4.6 posix_ghc704 :: Rules ByteString -- | Windows and DOS windows :: Rules Text -- | Darwin and Mac OS X. -- -- This is almost identical to posix, but with a native path type -- of Text rather than ByteString. -- -- Since: 0.3.4 / 0.4.3 darwin :: Rules Text -- | Darwin and Mac OS X. -- -- This is a variant of darwin for use with GHC 7.2 or later, -- which tries to decode file paths in its IO computations. -- -- Since: 0.3.4 / 0.4.3 darwin_ghc702 :: Rules Text -- | Attempt to convert a FilePath to human‐readable text. -- -- If the path is decoded successfully, the result is a Right -- containing the decoded text. Successfully decoded text can be -- converted back to the original path using fromText. -- -- If the path cannot be decoded, the result is a Left containing -- an approximation of the original path. If displayed to the user, this -- value should be accompanied by some warning that the path has an -- invalid encoding. Approximated text cannot be converted back to the -- original path. -- -- This function ignores the user’s locale, and assumes all file paths -- are encoded in UTF8. If you need to display file paths with an unusual -- or obscure encoding, use encode and then decode them manually. -- -- Since: 0.2 toText :: Rules platformFormat -> FilePath -> Either Text Text -- | Convert human‐readable text into a FilePath. -- -- This function ignores the user’s locale, and assumes all file paths -- are encoded in UTF8. If you need to create file paths with an unusual -- or obscure encoding, encode them manually and then use decode. -- -- Since: 0.2 fromText :: Rules platformFormat -> Text -> FilePath -- | Convert a FilePath to a platform‐specific format, suitable for -- use with external OS functions. -- -- Since: 0.3 encode :: Rules platformFormat -> FilePath -> platformFormat -- | Convert a FilePath from a platform‐specific format, suitable -- for use with external OS functions. -- -- Since: 0.3 decode :: Rules platformFormat -> platformFormat -> FilePath -- | Attempt to convert a FilePath to a string suitable for use with -- functions in System.IO. The contents of this string are -- platform‐dependent, and are not guaranteed to be human‐readable. For -- converting FilePaths to a human‐readable format, use -- toText. -- -- Since: 0.3.1 encodeString :: Rules platformFormat -> FilePath -> String -- | Attempt to parse a FilePath from a string suitable for use with -- functions in System.IO. Do not use this function for parsing -- human‐readable paths, as the character set decoding is -- platform‐dependent. For converting human‐readable text to a -- FilePath, use fromText. -- -- Since: 0.3.1 decodeString :: Rules platformFormat -> String -> FilePath -- | Check if a FilePath is valid; it must not contain any illegal -- characters, and must have a root appropriate to the current -- Rules. valid :: Rules platformFormat -> FilePath -> Bool -- | Split a search path, such as $PATH or $PYTHONPATH, -- into a list of FilePaths. splitSearchPath :: Rules platformFormat -> platformFormat -> [FilePath] -- | Re‐exports contents of Filesystem.Path.Rules, defaulting to the -- current OS’s rules when needed. -- -- Also enables Show and IsString instances for -- FilePath. module Filesystem.Path.CurrentOS currentOS :: Rules ByteString -- | Attempt to convert a FilePath to human‐readable text. -- -- If the path is decoded successfully, the result is a Right -- containing the decoded text. Successfully decoded text can be -- converted back to the original path using fromText. -- -- If the path cannot be decoded, the result is a Left containing -- an approximation of the original path. If displayed to the user, this -- value should be accompanied by some warning that the path has an -- invalid encoding. Approximated text cannot be converted back to the -- original path. -- -- This function ignores the user’s locale, and assumes all file paths -- are encoded in UTF8. If you need to display file paths with an unusual -- or obscure encoding, use encode and then decode them manually. -- -- Since: 0.2 toText :: FilePath -> Either Text Text -- | Convert human‐readable text into a FilePath. -- -- This function ignores the user’s locale, and assumes all file paths -- are encoded in UTF8. If you need to create file paths with an unusual -- or obscure encoding, encode them manually and then use decode. -- -- Since: 0.2 fromText :: Text -> FilePath -- | Convert a FilePath to a platform‐specific format, suitable for -- use with external OS functions. -- -- Since: 0.3 encode :: FilePath -> ByteString -- | Convert a FilePath from a platform‐specific format, suitable -- for use with external OS functions. -- -- Since: 0.3 decode :: ByteString -> FilePath -- | Attempt to convert a FilePath to a string suitable for use with -- functions in System.IO. The contents of this string are -- platform‐dependent, and are not guaranteed to be human‐readable. For -- converting FilePaths to a human‐readable format, use -- toText. -- -- Since: 0.3.1 encodeString :: FilePath -> String -- | Attempt to parse a FilePath from a string suitable for use with -- functions in System.IO. Do not use this function for parsing -- human‐readable paths, as the character set decoding is -- platform‐dependent. For converting human‐readable text to a -- FilePath, use fromText. -- -- Since: 0.3.1 decodeString :: String -> FilePath -- | Check if a FilePath is valid; it must not contain any illegal -- characters, and must have a root appropriate to the current -- Rules. valid :: FilePath -> Bool -- | Split a search path, such as $PATH or $PYTHONPATH, -- into a list of FilePaths. splitSearchPath :: ByteString -> [FilePath] instance Show FilePath instance IsString FilePath