Safe Haskell | Safe-Infered |
---|
Various abstractions for dealing with paths.
- data AbsolutePath
- makeAbsolute :: AbsolutePath -> FilePath -> AbsolutePath
- ioAbsolute :: FilePath -> IO AbsolutePath
- rootDirectory :: AbsolutePath
- data AbsolutePathOrStd
- makeAbsoluteOrStd :: AbsolutePath -> String -> AbsolutePathOrStd
- ioAbsoluteOrStd :: String -> IO AbsolutePathOrStd
- useAbsoluteOrStd :: (AbsolutePath -> a) -> a -> AbsolutePathOrStd -> a
- stdOut :: AbsolutePathOrStd
- data AbsoluteOrRemotePath
- ioAbsoluteOrRemote :: String -> IO AbsoluteOrRemotePath
- isRemote :: AbsoluteOrRemotePath -> Bool
- data SubPath
- makeSubPathOf :: AbsolutePath -> AbsolutePath -> Maybe SubPath
- simpleSubPath :: FilePath -> Maybe SubPath
- sp2fn :: SubPath -> FileName
- class FilePathOrURL a where
- class FilePathOrURL a => FilePathLike a where
- toFilePath :: a -> FilePath
- getCurrentDirectory :: IO AbsolutePath
- setCurrentDirectory :: FilePathLike p => p -> IO ()
AbsolutePath
data AbsolutePath Source
makeAbsolute :: AbsolutePath -> FilePath -> AbsolutePathSource
Take an absolute path and a string representing a (possibly relative) path and combine them into an absolute path. If the second argument is already absolute, then the first argument gets ignored. This function also takes care that the result is converted to Posix convention and normalized. Also, parent directories ("..") at the front of the string argument get canceled out against trailing directory parts of the absolute path argument.
Regarding the last point, someone more familiar with how these functions are used should verify that this is indeed necessary or at least useful.
ioAbsolute :: FilePath -> IO AbsolutePathSource
Interpret a possibly relative path wrt the current working directory.
rootDirectory :: AbsolutePathSource
The root directory as an absolute path.
AbsolutePathOrStd
data AbsolutePathOrStd Source
This is for situations where a string (e.g. a command line argument) may take the value "-" to mean stdin or stdout (which one depends on context) instead of a normal file path.
useAbsoluteOrStd :: (AbsolutePath -> a) -> a -> AbsolutePathOrStd -> aSource
Execute either the first or the second argument action, depending on
whether the given path is an AbsolutePath
or stdin/stdout.
AbsoluteOrRemotePath
SubPath
Paths which are relative to the local darcs repository and normalized. Note: These are understood not to have the dot in front.
makeSubPathOf :: AbsolutePath -> AbsolutePath -> Maybe SubPathSource
Make the second path relative to the first, if possible
Miscellaneous
class FilePathOrURL a whereSource
class FilePathOrURL a => FilePathLike a whereSource
toFilePath :: a -> FilePathSource
FilePathLike FileName | |
FilePathLike AbsolutePath | |
FilePathLike SubPath | |
CharLike c => FilePathLike [c] |
setCurrentDirectory :: FilePathLike p => p -> IO ()Source