ghc-lib-parser-0.20200201: The GHC API, decoupled from GHC versions

Safe HaskellNone
LanguageHaskell2010

FileCleanup

Synopsis

Documentation

data TempFileLifetime Source #

Used when a temp file is created. This determines which component Set of FilesToClean will get the temp file

Constructors

TFL_CurrentModule

A file with lifetime TFL_CurrentModule will be cleaned up at the end of upweep_mod

TFL_GhcSession

A file with lifetime TFL_GhcSession will be cleaned up at the end of runGhc(T)

cleanTempFiles :: DynFlags -> IO () Source #

Delete all files in filesToClean dflags.

cleanCurrentModuleTempFiles :: DynFlags -> IO () Source #

Delete all files in filesToClean dflags. That have lifetime TFL_CurrentModule. If a file must be cleaned eventually, but must survive a cleanCurrentModuleTempFiles, ensure it has lifetime TFL_GhcSession.

addFilesToClean :: DynFlags -> TempFileLifetime -> [FilePath] -> IO () Source #

Ensure that new_files are cleaned on the next call of cleanTempFiles or cleanCurrentModuleTempFiles, depending on lifetime. If any of new_files are already tracked, they will have their lifetime updated.

changeTempFilesLifetime :: DynFlags -> TempFileLifetime -> [FilePath] -> IO () Source #

Update the lifetime of files already being tracked. If any files are not being tracked they will be discarded.

withSystemTempDirectory Source #

Arguments

:: String

Directory name template. See openTempFile.

-> (FilePath -> IO a)

Callback that can use the directory

-> IO a 

Create and use a temporary directory in the system standard temporary directory.

Behaves exactly the same as withTempDirectory, except that the parent temporary directory will be that returned by getTemporaryDirectory.

withTempDirectory Source #

Arguments

:: FilePath

Temp directory to create the directory in

-> String

Directory name template. See openTempFile.

-> (FilePath -> IO a)

Callback that can use the directory

-> IO a 

Create and use a temporary directory.

Creates a new temporary directory inside the given directory, making use of the template. The temp directory is deleted after use. For example:

withTempDirectory "src" "sdist." $ \tmpDir -> do ...

The tmpDir will be a new subdirectory of the given directory, e.g. src/sdist.342.