refactor nested case statements when installing cabal

This commit is contained in:
Arjun Kathuria 2021-08-30 15:18:43 +05:30
parent 59a9a770a5
commit 107fed6e60

View File

@ -425,22 +425,23 @@ installCabalBindist dlinfo ver isoFilepath forceInstall = do
-- check if we already have a regular cabal already installed -- check if we already have a regular cabal already installed
regularCabalInstalled <- checkIfCabalInstalled ver binDir exeExt regularCabalInstalled <- checkIfCabalInstalled ver binDir exeExt
case forceInstall of -- check if we already have a regular cabal already installed
True -> case isoFilepath of regularCabalInstalled <- lift $ checkIfToolInstalled Cabal ver
Nothing -> -- force install and a regular install
when (regularCabalInstalled) if
(do | forceInstall
, regularCabalInstalled
, Nothing <- isoFilepath -> do
lift $ $(logInfo) $ "Removing the currently installed version first!" lift $ $(logInfo) $ "Removing the currently installed version first!"
liftE $ rmCabalVer ver) liftE $ rmCabalVer ver
_ -> pure () -- force install and an isolated install (checks done later while unpacking) | not forceInstall
, regularCabalInstalled
, Nothing <- isoFilepath -> do
throwE $ AlreadyInstalled Cabal ver
False -> case isoFilepath of | otherwise -> pure ()
Nothing ->
when (regularCabalInstalled)
(throwE $ AlreadyInstalled Cabal ver)
_ -> pure ()
-- download (or use cached version) -- download (or use cached version)
dl <- liftE $ downloadCached dlinfo Nothing dl <- liftE $ downloadCached dlinfo Nothing