diff --git a/app/ghcup/Main.hs b/app/ghcup/Main.hs index bdf0f6e..74e4fca 100644 --- a/app/ghcup/Main.hs +++ b/app/ghcup/Main.hs @@ -833,8 +833,8 @@ listOpts = (eitherReader criteriaParser) ( short 'c' <> long "show-criteria" - <> metavar "" - <> help "Show only installed or set tool versions" + <> metavar "" + <> help "Show only installed/set/available tool versions" ) ) <*> switch @@ -1438,6 +1438,7 @@ toolParser s' | t == T.pack "ghc" = Right GHC criteriaParser :: String -> Either String ListCriteria criteriaParser s' | t == T.pack "installed" = Right ListInstalled | t == T.pack "set" = Right ListSet + | t == T.pack "available" = Right ListAvailable | otherwise = Left ("Unknown criteria: " <> s') where t = T.toLower (T.pack s') diff --git a/lib/GHCup.hs b/lib/GHCup.hs index e3c6543..3ed9f35 100644 --- a/lib/GHCup.hs +++ b/lib/GHCup.hs @@ -1335,6 +1335,7 @@ warnAboutHlsCompatibility = do -- | Filter data type for 'listVersions'. data ListCriteria = ListInstalled | ListSet + | ListAvailable deriving Show -- | A list result describes a single tool version @@ -1677,6 +1678,7 @@ listVersions lt' criteria = do Nothing -> lr Just ListInstalled -> filter (\ListResult {..} -> lInstalled) lr Just ListSet -> filter (\ListResult {..} -> lSet) lr + Just ListAvailable -> filter (\ListResult {..} -> not lNoBindist) lr