From 701d0c905d73bc431e245f4a80bf02992b31a841 Mon Sep 17 00:00:00 2001 From: Colin Woodbury Date: Tue, 27 Oct 2020 16:07:37 -0700 Subject: [PATCH] [aura] Fix version ordering bug --- aura/exec/Aura/Commands/A.hs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/aura/exec/Aura/Commands/A.hs b/aura/exec/Aura/Commands/A.hs index 7631e65a9..d92a8b938 100644 --- a/aura/exec/Aura/Commands/A.hs +++ b/aura/exec/Aura/Commands/A.hs @@ -1,6 +1,7 @@ -{-# LANGUAGE BangPatterns #-} -{-# LANGUAGE LambdaCase #-} -{-# LANGUAGE ViewPatterns #-} +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE TupleSections #-} +{-# LANGUAGE ViewPatterns #-} -- | -- Module : Aura.Commands.A @@ -46,6 +47,7 @@ import qualified RIO.ByteString.Lazy as BL import qualified RIO.HashSet as HS import qualified RIO.List as L import RIO.List.Partial (maximum) +import qualified RIO.Map as M import qualified RIO.NonEmpty as NEL import qualified RIO.Set as S import qualified RIO.Text as T @@ -93,11 +95,10 @@ upgrade pkgs fs = do possibleUpdates :: NonEmpty SimplePkg -> RIO Env [(AurInfo, Versioning)] possibleUpdates pkgs = do - aurInfos <- aurInfo $ fmap spName pkgs - let !names = map aurNameOf aurInfos - aurPkgs = NEL.filter (\(SimplePkg (PkgName n) _) -> n `elem` names) pkgs + aurInfos <- M.fromList . map (\ai -> (aurNameOf ai, ai)) <$> aurInfo (NEL.map spName pkgs) + let realPkgs = mapMaybe (\(SimplePkg (PkgName n) v) -> (,v) <$> M.lookup n aurInfos) $ NEL.toList pkgs logDebug "Package lookup successful." - pure . filter isntMostRecent . zip aurInfos $ map spVersion aurPkgs + pure $ filter isntMostRecent realPkgs -- | Is there an update for Aura that we could apply first? auraCheck :: [PkgName] -> RIO Env (Maybe PkgName)