diff --git a/CHANGELOG.md b/CHANGELOG.md index 39d3285..c103117 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Revision history for ghcup -## 0.1.16 -- 2021-07-28 +## 0.1.16.1 -- 2021-07-29 * Add 'nuke' subcommand wrt [#135](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/135), implemented by Arjun Kathuria * Add uninstallation powershell script on windows wrt [#150](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/150) diff --git a/ghcup.cabal b/ghcup.cabal index 822d73e..be8bdf4 100644 --- a/ghcup.cabal +++ b/ghcup.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: ghcup -version: 0.1.16 +version: 0.1.16.1 license: LGPL-3.0-only license-file: LICENSE copyright: Julian Ospald 2020 diff --git a/lib/GHCup.hs b/lib/GHCup.hs index b6c2e91..8b59840 100644 --- a/lib/GHCup.hs +++ b/lib/GHCup.hs @@ -1019,8 +1019,8 @@ listVersions lt' criteria = do slr <- strayStacks avTools sSet stacks pure (sort (slr ++ lr)) GHCup -> do - let cg = currentGHCup avTools - pure (sort (cg : lr)) + let cg = maybeToList $ currentGHCup avTools + pure (sort (cg ++ lr)) Nothing -> do ghcvers <- go (Just GHC) cSet cabals hlsSet' hlses sSet stacks cabalvers <- go (Just Cabal) cSet cabals hlsSet' hlses sSet stacks @@ -1180,24 +1180,25 @@ listVersions lt' criteria = do [i|Could not parse version of stray directory #{e}|] pure Nothing - currentGHCup :: Map.Map Version VersionInfo -> ListResult + currentGHCup :: Map.Map Version VersionInfo -> Maybe ListResult currentGHCup av = let currentVer = pvpToVersion ghcUpVer listVer = Map.lookup currentVer av latestVer = fst <$> headOf (getTagged Latest) av recommendedVer = fst <$> headOf (getTagged Latest) av isOld = maybe True (> currentVer) latestVer && maybe True (> currentVer) recommendedVer - in ListResult { lVer = currentVer - , lTag = maybe (if isOld then [Old] else []) _viTags listVer - , lCross = Nothing - , lTool = GHCup - , fromSrc = False - , lStray = isNothing listVer - , lSet = True - , lInstalled = True - , lNoBindist = False - , hlsPowered = False - } + in if | currentVer == listVer -> Nothing + | otherwise -> ListResult { lVer = currentVer + , lTag = maybe (if isOld then [Old] else []) _viTags listVer + , lCross = Nothing + , lTool = GHCup + , fromSrc = False + , lStray = isNothing listVer + , lSet = True + , lInstalled = True + , lNoBindist = False + , hlsPowered = False + } -- NOTE: this are not cross ones, because no bindists toListResult :: ( MonadLogger m