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
1 changed files with 16 additions and 15 deletions

View File

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