From b38a569124fade155695bcbca3587ac1ab5737e4 Mon Sep 17 00:00:00 2001
From: Julian Ospald <hasufell@posteo.de>
Date: Wed, 28 Jul 2021 22:36:59 +0200
Subject: [PATCH] Bump to 0.1.16.1

---
 CHANGELOG.md |  2 +-
 ghcup.cabal  |  2 +-
 lib/GHCup.hs | 29 +++++++++++++++--------------
 3 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 39d32854..c1031171 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 822d73e2..be8bdf48 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 b6c2e917..8b59840d 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
-- 
GitLab