From 93e565e40856e1a8d598be9c11c7d25520d6934a Mon Sep 17 00:00:00 2001 From: teodanciu Date: Fri, 27 Oct 2023 14:08:01 +0100 Subject: [PATCH] Parse `MemberStatus` filter as a flag rather than string argument --- .../src/Cardano/CLI/EraBased/Options/Query.hs | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Options/Query.hs b/cardano-cli/src/Cardano/CLI/EraBased/Options/Query.hs index 4bb9bd1da7..ca98268c3b 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Options/Query.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Options/Query.hs @@ -8,6 +8,7 @@ module Cardano.CLI.EraBased.Options.Query ) where import Cardano.Api hiding (QueryInShelleyBasedEra (..)) +import qualified Cardano.Api as MemberStatus (MemberStatus (..)) import Cardano.Api.Shelley hiding (QueryInShelleyBasedEra (..)) import Cardano.CLI.Environment (EnvCli (..)) @@ -15,7 +16,6 @@ import Cardano.CLI.EraBased.Commands.Query import Cardano.CLI.EraBased.Options.Common import Cardano.CLI.Types.Common -import qualified Data.Text as Text (toLower, unpack) import Data.Foldable import Options.Applicative hiding (help, str) import qualified Options.Applicative as Opt @@ -364,21 +364,23 @@ pQueryGetCommitteeStateCmd era envCli = do <*> many pCommitteeHotKeyOrHashOrFile <*> many pMemberStatus <*> optional pOutputFile + pMemberStatus :: Parser MemberStatus pMemberStatus = - Opt.option readerMemberStatus $ mconcat - [ Opt.long "memberstatus" - , Opt.metavar "MEMBER_STATUS" - , Opt.help "Member status filter: active/expired/unrecognized" - ] - readerMemberStatus :: ReadM MemberStatus - readerMemberStatus = do - v <- Opt.str - case Text.toLower v of - "active" -> pure Active - "expired" -> pure Expired - "unrecognized" -> pure Unrecognized - _ -> fail ("Unrecognized status: " <> Text.unpack v) + asum + [ Opt.flag' MemberStatus.Active $ mconcat + [ Opt.long "active" + , Opt.help "Active committee members (members whose vote will count during ratification)" + ] + , Opt.flag' MemberStatus.Expired $ mconcat + [ Opt.long "expired" + , Opt.help "Expired committee members" + ] + , Opt.flag' MemberStatus.Unrecognized $ mconcat + [ Opt.long "unrecognized" + , Opt.help "Unrecognized committe members: a hot credential for an unknown cold credential" + ] + ] pQueryNoArgCmdArgs :: () => ConwayEraOnwards era