Don't clean up tmp dirs when --keep=always

This commit is contained in:
Julian Ospald 2023-01-01 23:50:12 +08:00
parent d1075987de
commit d5a680e3c6
Signed by: hasufell
GPG Key ID: 3786C5262ECB4A3F

View File

@ -465,13 +465,20 @@ withGHCupTmpDir :: ( MonadReader env m
, MonadMask m , MonadMask m
, MonadIO m) , MonadIO m)
=> m GHCupPath => m GHCupPath
withGHCupTmpDir = snd <$> withRunInIO (\run -> withGHCupTmpDir = do
Settings{keepDirs} <- getSettings
snd <$> withRunInIO (\run ->
run run
$ allocate $ allocate
(run mkGhcupTmpDir) (run mkGhcupTmpDir)
(\fp -> (\fp -> if -- we don't know whether there was a failure, so can only
handleIO (\e -> run -- decide for 'Always'
$ logDebug ("Resource cleanup failed for " <> T.pack (fromGHCupPath fp) <> ", error was: " <> T.pack (displayException e))) | keepDirs == Always -> pure ()
| otherwise -> handleIO (\e -> run
$ logDebug ("Resource cleanup failed for "
<> T.pack (fromGHCupPath fp)
<> ", error was: "
<> T.pack (displayException e)))
. removePathForcibly . removePathForcibly
$ fp)) $ fp))