{-# LANGUAGE TypeApplications #-} module Cardano.CLI.EraBased.Option ( pCmds , pAnyEraCommand ) where import Cardano.Api.Experimental import Cardano.CLI.Environment import Cardano.CLI.EraBased.Command import Cardano.CLI.EraBased.Genesis.Option import Cardano.CLI.EraBased.Governance.Option (pGovernanceCmds) import Cardano.CLI.EraBased.Query.Option import Cardano.CLI.EraBased.StakeAddress.Option import Cardano.CLI.EraBased.StakePool.Option import Cardano.CLI.EraBased.TextView.Option import Cardano.CLI.EraBased.Transaction.Option import Cardano.CLI.EraIndependent.Address.Option import Cardano.CLI.EraIndependent.Key.Option import Cardano.CLI.EraIndependent.Node.Option import Cardano.CLI.Parser import Data.Foldable import Data.Maybe import Options.Applicative (Parser) import Options.Applicative qualified as Opt pCmds :: IsEra era => EnvCli -> Parser (Cmds era) pCmds :: forall era. IsEra era => EnvCli -> Parser (Cmds era) pCmds EnvCli envCli = do [Parser (Cmds era)] -> Parser (Cmds era) forall (t :: * -> *) (f :: * -> *) a. (Foldable t, Alternative f) => t (f a) -> f a asum ([Parser (Cmds era)] -> Parser (Cmds era)) -> [Parser (Cmds era)] -> Parser (Cmds era) forall a b. (a -> b) -> a -> b $ [Maybe (Parser (Cmds era))] -> [Parser (Cmds era)] forall a. [Maybe a] -> [a] catMaybes [ Parser (Cmds era) -> Maybe (Parser (Cmds era)) forall a. a -> Maybe a Just (AddressCmds -> Cmds era forall era. AddressCmds -> Cmds era AddressCmds (AddressCmds -> Cmds era) -> Parser AddressCmds -> Parser (Cmds era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> EnvCli -> Parser AddressCmds pAddressCmds EnvCli envCli) , Parser (Cmds era) -> Maybe (Parser (Cmds era)) forall a. a -> Maybe a Just (KeyCmds -> Cmds era forall era. KeyCmds -> Cmds era KeyCmds (KeyCmds -> Cmds era) -> Parser KeyCmds -> Parser (Cmds era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Parser KeyCmds pKeyCmds) , (GenesisCmds era -> Cmds era) -> Parser (GenesisCmds era) -> Parser (Cmds era) forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap GenesisCmds era -> Cmds era forall era. GenesisCmds era -> Cmds era GenesisCmds (Parser (GenesisCmds era) -> Parser (Cmds era)) -> Maybe (Parser (GenesisCmds era)) -> Maybe (Parser (Cmds era)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> EnvCli -> Maybe (Parser (GenesisCmds era)) forall era. IsEra era => EnvCli -> Maybe (Parser (GenesisCmds era)) pGenesisCmds EnvCli envCli , (GovernanceCmds era -> Cmds era) -> Parser (GovernanceCmds era) -> Parser (Cmds era) forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap GovernanceCmds era -> Cmds era forall era. GovernanceCmds era -> Cmds era GovernanceCmds (Parser (GovernanceCmds era) -> Parser (Cmds era)) -> Maybe (Parser (GovernanceCmds era)) -> Maybe (Parser (Cmds era)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Maybe (Parser (GovernanceCmds era)) forall era. IsEra era => Maybe (Parser (GovernanceCmds era)) pGovernanceCmds , Parser (Cmds era) -> Maybe (Parser (Cmds era)) forall a. a -> Maybe a Just (NodeCmds -> Cmds era forall era. NodeCmds -> Cmds era NodeCmds (NodeCmds -> Cmds era) -> Parser NodeCmds -> Parser (Cmds era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Parser NodeCmds pNodeCmds) , (QueryCmds era -> Cmds era) -> Parser (QueryCmds era) -> Parser (Cmds era) forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap QueryCmds era -> Cmds era forall era. QueryCmds era -> Cmds era QueryCmds (Parser (QueryCmds era) -> Parser (Cmds era)) -> Maybe (Parser (QueryCmds era)) -> Maybe (Parser (Cmds era)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> EnvCli -> Maybe (Parser (QueryCmds era)) forall era. IsEra era => EnvCli -> Maybe (Parser (QueryCmds era)) pQueryCmds EnvCli envCli , (StakeAddressCmds era -> Cmds era) -> Parser (StakeAddressCmds era) -> Parser (Cmds era) forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap StakeAddressCmds era -> Cmds era forall era. StakeAddressCmds era -> Cmds era StakeAddressCmds (Parser (StakeAddressCmds era) -> Parser (Cmds era)) -> Maybe (Parser (StakeAddressCmds era)) -> Maybe (Parser (Cmds era)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> EnvCli -> Maybe (Parser (StakeAddressCmds era)) forall era. IsEra era => EnvCli -> Maybe (Parser (StakeAddressCmds era)) pStakeAddressCmds EnvCli envCli , (StakePoolCmds era -> Cmds era) -> Parser (StakePoolCmds era) -> Parser (Cmds era) forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap StakePoolCmds era -> Cmds era forall era. StakePoolCmds era -> Cmds era StakePoolCmds (Parser (StakePoolCmds era) -> Parser (Cmds era)) -> Maybe (Parser (StakePoolCmds era)) -> Maybe (Parser (Cmds era)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> EnvCli -> Maybe (Parser (StakePoolCmds era)) forall era. IsEra era => EnvCli -> Maybe (Parser (StakePoolCmds era)) pStakePoolCmds EnvCli envCli , (TextViewCmds era -> Cmds era) -> Parser (TextViewCmds era) -> Parser (Cmds era) forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap TextViewCmds era -> Cmds era forall era. TextViewCmds era -> Cmds era TextViewCmds (Parser (TextViewCmds era) -> Parser (Cmds era)) -> Maybe (Parser (TextViewCmds era)) -> Maybe (Parser (Cmds era)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Maybe (Parser (TextViewCmds era)) forall era. Maybe (Parser (TextViewCmds era)) pTextViewCmds , (TransactionCmds era -> Cmds era) -> Parser (TransactionCmds era) -> Parser (Cmds era) forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap TransactionCmds era -> Cmds era forall era. TransactionCmds era -> Cmds era TransactionCmds (Parser (TransactionCmds era) -> Parser (Cmds era)) -> Maybe (Parser (TransactionCmds era)) -> Maybe (Parser (Cmds era)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> EnvCli -> Maybe (Parser (TransactionCmds era)) forall era. IsEra era => EnvCli -> Maybe (Parser (TransactionCmds era)) pTransactionCmds EnvCli envCli ] pAnyEraCommand :: EnvCli -> Parser AnyEraCommand pAnyEraCommand :: EnvCli -> Parser AnyEraCommand pAnyEraCommand EnvCli envCli = [Parser AnyEraCommand] -> Parser AnyEraCommand forall (t :: * -> *) (f :: * -> *) a. (Foldable t, Alternative f) => t (f a) -> f a asum [ Mod CommandFields AnyEraCommand -> Parser AnyEraCommand forall a. Mod CommandFields a -> Parser a Opt.hsubparser (Mod CommandFields AnyEraCommand -> Parser AnyEraCommand) -> Mod CommandFields AnyEraCommand -> Parser AnyEraCommand forall a b. (a -> b) -> a -> b $ String -> ParserInfo AnyEraCommand -> Mod CommandFields AnyEraCommand forall a. String -> ParserInfo a -> Mod CommandFields a commandWithMetavar String "conway" (ParserInfo AnyEraCommand -> Mod CommandFields AnyEraCommand) -> ParserInfo AnyEraCommand -> Mod CommandFields AnyEraCommand forall a b. (a -> b) -> a -> b $ Parser AnyEraCommand -> InfoMod AnyEraCommand -> ParserInfo AnyEraCommand forall a. Parser a -> InfoMod a -> ParserInfo a Opt.info (Era ConwayEra -> Cmds ConwayEra -> AnyEraCommand forall era. Typeable era => Era era -> Cmds era -> AnyEraCommand AnyEraCommandOf Era ConwayEra ConwayEra (Cmds ConwayEra -> AnyEraCommand) -> Parser (Cmds ConwayEra) -> Parser AnyEraCommand forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall era. IsEra era => EnvCli -> Parser (Cmds era) pCmds @ConwayEra EnvCli envCli) (InfoMod AnyEraCommand -> ParserInfo AnyEraCommand) -> InfoMod AnyEraCommand -> ParserInfo AnyEraCommand forall a b. (a -> b) -> a -> b $ String -> InfoMod AnyEraCommand forall a. String -> InfoMod a Opt.progDesc String "Conway era commands" , Mod CommandFields AnyEraCommand -> Parser AnyEraCommand forall a. Mod CommandFields a -> Parser a Opt.hsubparser (Mod CommandFields AnyEraCommand -> Parser AnyEraCommand) -> Mod CommandFields AnyEraCommand -> Parser AnyEraCommand forall a b. (a -> b) -> a -> b $ String -> ParserInfo AnyEraCommand -> Mod CommandFields AnyEraCommand forall a. String -> ParserInfo a -> Mod CommandFields a commandWithMetavar String "latest" (ParserInfo AnyEraCommand -> Mod CommandFields AnyEraCommand) -> ParserInfo AnyEraCommand -> Mod CommandFields AnyEraCommand forall a b. (a -> b) -> a -> b $ Parser AnyEraCommand -> InfoMod AnyEraCommand -> ParserInfo AnyEraCommand forall a. Parser a -> InfoMod a -> ParserInfo a Opt.info (Era ConwayEra -> Cmds ConwayEra -> AnyEraCommand forall era. Typeable era => Era era -> Cmds era -> AnyEraCommand AnyEraCommandOf Era ConwayEra ConwayEra (Cmds ConwayEra -> AnyEraCommand) -> Parser (Cmds ConwayEra) -> Parser AnyEraCommand forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall era. IsEra era => EnvCli -> Parser (Cmds era) pCmds @ConwayEra EnvCli envCli) (InfoMod AnyEraCommand -> ParserInfo AnyEraCommand) -> InfoMod AnyEraCommand -> ParserInfo AnyEraCommand forall a b. (a -> b) -> a -> b $ String -> InfoMod AnyEraCommand forall a. String -> InfoMod a Opt.progDesc String "Latest era commands (Conway)" ]