Safe Haskell | None |
---|---|
Language | Haskell98 |
Darcs.RepoPath
Description
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 -> AbsolutePath Source
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 AbsolutePath Source
Interpret a possibly relative path wrt the current working directory.
rootDirectory :: AbsolutePath Source
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 -> a Source
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.
Instances
makeSubPathOf :: AbsolutePath -> AbsolutePath -> Maybe SubPath Source
Make the second path relative to the first, if possible
simpleSubPath :: FilePath -> Maybe SubPath Source
Miscellaneous
class FilePathOrURL a where Source
Instances
class FilePathOrURL a => FilePathLike a where Source
Methods
toFilePath :: a -> FilePath Source
Instances
FilePathLike FileName | |
FilePathLike AbsolutePath | |
FilePathLike SubPath | |
CharLike c => FilePathLike [c] |
setCurrentDirectory :: FilePathLike p => p -> IO () Source