Improve error handling for mergeFileTree

This commit is contained in:
2022-05-19 23:17:58 +02:00
parent 1cffa358b8
commit 430b655785
8 changed files with 149 additions and 59 deletions

View File

@@ -389,6 +389,7 @@ type GHCEffects = '[ AlreadyInstalled
, CopyError
, BuildFailed
, UninstallFailed
, MergeFileTreeError
]
type HLSEffects = '[ AlreadyInstalled
, BuildFailed
@@ -408,6 +409,7 @@ type HLSEffects = '[ AlreadyInstalled
, DirNotEmpty
, ArchiveResult
, UninstallFailed
, MergeFileTreeError
]

View File

@@ -259,6 +259,7 @@ type InstallEffects = '[ AlreadyInstalled
, FileAlreadyExistsError
, ProcessError
, UninstallFailed
, MergeFileTreeError
, (AlreadyInstalled, ())
, (UnknownArchive, ())
@@ -267,6 +268,7 @@ type InstallEffects = '[ AlreadyInstalled
, (CopyError, ())
, (NotInstalled, ())
, (UninstallFailed, ())
, (MergeFileTreeError, ())
, (DirNotEmpty, ())
, (NoDownload, ())
, (BuildFailed, ())
@@ -290,6 +292,7 @@ type InstallEffects = '[ AlreadyInstalled
, (NoDownload, NotInstalled)
, (NotInstalled, NotInstalled)
, (UninstallFailed, NotInstalled)
, (MergeFileTreeError, NotInstalled)
, (BuildFailed, NotInstalled)
, (TagNotFound, NotInstalled)
, (DigestError, NotInstalled)
@@ -323,6 +326,7 @@ type InstallGHCEffects = '[ TagNotFound
, DirNotEmpty
, AlreadyInstalled
, UninstallFailed
, MergeFileTreeError
, (AlreadyInstalled, NotInstalled)
, (UnknownArchive, NotInstalled)
@@ -333,6 +337,7 @@ type InstallGHCEffects = '[ TagNotFound
, (DirNotEmpty, NotInstalled)
, (NoDownload, NotInstalled)
, (UninstallFailed, NotInstalled)
, (MergeFileTreeError, NotInstalled)
, (BuildFailed, NotInstalled)
, (TagNotFound, NotInstalled)
, (DigestError, NotInstalled)
@@ -353,6 +358,7 @@ type InstallGHCEffects = '[ TagNotFound
, (DirNotEmpty, ())
, (NoDownload, ())
, (UninstallFailed, ())
, (MergeFileTreeError, ())
, (BuildFailed, ())
, (TagNotFound, ())
, (DigestError, ())

View File

@@ -176,6 +176,7 @@ type RunEffects = '[ AlreadyInstalled
, FileAlreadyExistsError
, ProcessError
, UninstallFailed
, MergeFileTreeError
]
runLeanRUN :: (MonadUnliftIO m, MonadIO m)
@@ -340,6 +341,7 @@ run RunOptions{..} runAppState leanAppstate runLogger = do
, FileAlreadyExistsError
, CopyError
, UninstallFailed
, MergeFileTreeError
] (ResourceT (ReaderT AppState m)) ()
installToolChainFull Toolchain{..} tmp = do
forM_ [(GHC,) <$> ghcVer, (Cabal,) <$> cabalVer, (HLS,) <$> hlsVer, (Stack,) <$> stackVer] $ \mt -> do