Safe Haskell | None |
---|---|
Language | Haskell2010 |
- withLock :: String -> IO a -> IO a
- withLockCanFail :: String -> IO a -> IO (Either () a)
- environmentHelpLocks :: ([String], [String])
- withTemp :: (FilePath -> IO a) -> IO a
- withOpenTemp :: ((Handle, FilePath) -> IO a) -> IO a
- withStdoutTemp :: (FilePath -> IO a) -> IO a
- withTempDir :: FilePath -> (AbsolutePath -> IO a) -> IO a
- withPermDir :: FilePath -> (AbsolutePath -> IO a) -> IO a
- withDelayedDir :: FilePath -> (AbsolutePath -> IO a) -> IO a
- withNamedTemp :: FilePath -> (FilePath -> IO a) -> IO a
- writeBinFile :: FilePathLike p => p -> ByteString -> IO ()
- writeTextFile :: FilePathLike p => p -> String -> IO ()
- writeDocBinFile :: FilePathLike p => p -> Doc -> IO ()
- appendBinFile :: FilePathLike p => p -> ByteString -> IO ()
- appendTextFile :: FilePathLike p => p -> String -> IO ()
- appendDocBinFile :: FilePathLike p => p -> Doc -> IO ()
- readBinFile :: FilePathLike p => p -> IO ByteString
- readTextFile :: FilePathLike p => p -> IO [String]
- readDocBinFile :: FilePathLike p => p -> IO Doc
- writeAtomicFilePS :: FilePathLike p => p -> ByteString -> IO ()
- gzWriteAtomicFilePS :: FilePathLike p => p -> ByteString -> IO ()
- gzWriteAtomicFilePSs :: FilePathLike p => p -> [ByteString] -> IO ()
- gzWriteDocFile :: FilePathLike p => p -> Doc -> IO ()
- rmRecursive :: FilePath -> IO ()
- removeFileMayNotExist :: FilePathLike p => p -> IO ()
- canonFilename :: FilePath -> IO FilePath
- maybeRelink :: String -> String -> IO Bool
- tempdirLoc :: IO FilePath
- environmentHelpTmpdir :: ([String], [String])
- environmentHelpKeepTmpdir :: ([String], [String])
- addToErrorLoc :: IOException -> String -> IOException
- withNewDirectory :: FilePath -> IO () -> IO ()
Documentation
withLockCanFail :: String -> IO a -> IO (Either () a) Source #
Tries to perform some task if it can obtain the lock, Otherwise, just gives up without doing the task
environmentHelpLocks :: ([String], [String]) Source #
withTemp :: (FilePath -> IO a) -> IO a Source #
withTemp
safely creates an empty file (not open for writing) and
returns its name.
The temp file operations are rather similar to the locking operations, in that they both should always try to clean up, so exitWith causes trouble.
withOpenTemp :: ((Handle, FilePath) -> IO a) -> IO a Source #
withOpenTemp
creates a temporary file, and opens it.
Both of them run their argument and then delete the file. Also,
both of them (to my knowledge) are not susceptible to race conditions on
the temporary file (as long as you never delete the temporary file; that
would reintroduce a race condition).
withTempDir :: FilePath -> (AbsolutePath -> IO a) -> IO a Source #
withTempDir
creates a temporary directory, runs the action and then
removes the directory. The
location of that directory is determined by the contents of
_darcsprefstmpdir, if it exists, otherwise by $DARCS_TMPDIR
, and if
that doesn't exist then whatever your operating system considers to be a
a temporary directory (e.g. $TMPDIR
under Unix, $TEMP
under
Windows).
If none of those exist it creates the temporary directory
in the current directory, unless the current directory is under a _darcs
directory, in which case the temporary directory in the parent of the highest
_darcs directory to avoid accidentally corrupting darcs's internals.
This should not fail, but if it does indeed fail, we go ahead and use the
current directory anyway. If $DARCS_KEEP_TMPDIR
variable is set
temporary directory is not removed, this can be useful for debugging.
withPermDir :: FilePath -> (AbsolutePath -> IO a) -> IO a Source #
withPermDir
is like withTempDir
, except that it doesn't
delete the directory afterwards.
withDelayedDir :: FilePath -> (AbsolutePath -> IO a) -> IO a Source #
writeBinFile :: FilePathLike p => p -> ByteString -> IO () Source #
writeTextFile :: FilePathLike p => p -> String -> IO () Source #
writeDocBinFile :: FilePathLike p => p -> Doc -> IO () Source #
appendBinFile :: FilePathLike p => p -> ByteString -> IO () Source #
appendTextFile :: FilePathLike p => p -> String -> IO () Source #
appendDocBinFile :: FilePathLike p => p -> Doc -> IO () Source #
readBinFile :: FilePathLike p => p -> IO ByteString Source #
readTextFile :: FilePathLike p => p -> IO [String] Source #
readDocBinFile :: FilePathLike p => p -> IO Doc Source #
writeAtomicFilePS :: FilePathLike p => p -> ByteString -> IO () Source #
gzWriteAtomicFilePS :: FilePathLike p => p -> ByteString -> IO () Source #
gzWriteAtomicFilePSs :: FilePathLike p => p -> [ByteString] -> IO () Source #
gzWriteDocFile :: FilePathLike p => p -> Doc -> IO () Source #
rmRecursive :: FilePath -> IO () Source #
removeFileMayNotExist :: FilePathLike p => p -> IO () Source #
tempdirLoc :: IO FilePath Source #
environmentHelpTmpdir :: ([String], [String]) Source #
environmentHelpKeepTmpdir :: ([String], [String]) Source #
addToErrorLoc :: IOException -> String -> IOException Source #