Skip to content

New output format flag for some commands #1188

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions cardano-cli/src/Cardano/CLI/EraBased/Genesis/Run.hs
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,8 @@ runGenesisTxInCmd
fromEitherIOCli $
readFileTextEnvelope verificationKeyPath
let txin = genesisUTxOPseudoTxIn network (verificationKeyHash vkey)
liftIO $ writeOutput mOutFile (renderTxIn txin)

cioWriteTextOutput mOutFile (renderTxIn txin)

runGenesisAddrCmd
:: GenesisAddrCmdArgs
Expand All @@ -224,11 +225,8 @@ runGenesisAddrCmd
network
(PaymentCredentialByKey vkh)
NoStakeAddress
liftIO $ writeOutput mOutFile (serialiseAddress addr)

writeOutput :: Maybe (File () Out) -> Text -> IO ()
writeOutput (Just (File fpath)) = Text.writeFile fpath
writeOutput Nothing = Text.putStrLn
cioWriteTextOutput mOutFile (serialiseAddress addr)

--
-- Create Genesis command implementation
Expand Down Expand Up @@ -1360,3 +1358,12 @@ runGenesisHashFileCmd (GenesisFile fpath) = do
let gh :: Crypto.Hash Crypto.Blake2b_256 ByteString
gh = Crypto.hashWith id content
liftIO $ Text.putStrLn (Crypto.hashToTextAsHex gh)

cioWriteTextOutput
:: Maybe (File content Out)
-> Text
-> CIO e ()
cioWriteTextOutput mOutput t =
case mOutput of
Just fp -> liftIO $ Text.writeFile (unFile fp) t
Nothing -> liftIO $ Text.putStr t
5 changes: 5 additions & 0 deletions cardano-cli/src/Cardano/CLI/EraBased/Query/Command.hs
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ data QueryRefScriptSizeCmdArgs = QueryRefScriptSizeCmdArgs
data QueryNoArgCmdArgs era = QueryNoArgCmdArgs
{ eon :: !(ConwayEraOnwards era)
, commons :: !QueryCommons
, outputFormat :: !(Vary [FormatJson, FormatYaml])
, mOutFile :: !(Maybe (File () Out))
}
deriving Show
Expand All @@ -223,6 +224,7 @@ data QueryDRepStateCmdArgs era = QueryDRepStateCmdArgs
, commons :: !QueryCommons
, drepHashSources :: !(AllOrOnly DRepHashSource)
, includeStake :: !IncludeStake
, outputFormat :: !(Vary [FormatJson, FormatYaml])
, mOutFile :: !(Maybe (File () Out))
}
deriving Show
Expand All @@ -231,6 +233,7 @@ data QueryProposalsCmdArgs era = QueryProposalsCmdArgs
{ eon :: !(ConwayEraOnwards era)
, commons :: !QueryCommons
, govActionIds :: !(AllOrOnly L.GovActionId)
, outputFormat :: !(Vary [FormatJson, FormatYaml])
, mOutFile :: !(Maybe (File () Out))
}
deriving Show
Expand All @@ -239,6 +242,7 @@ data QueryDRepStakeDistributionCmdArgs era = QueryDRepStakeDistributionCmdArgs
{ eon :: !(ConwayEraOnwards era)
, commons :: !QueryCommons
, drepHashSources :: !(AllOrOnly DRepHashSource)
, outputFormat :: !(Vary [FormatJson, FormatYaml])
, mOutFile :: !(Maybe (File () Out))
}
deriving Show
Expand All @@ -258,6 +262,7 @@ data QueryCommitteeMembersStateCmdArgs era = QueryCommitteeMembersStateCmdArgs
, committeeColdKeys :: ![VerificationKeyOrHashOrFileOrScriptHash CommitteeColdKey]
, committeeHotKeys :: ![VerificationKeyOrHashOrFileOrScriptHash CommitteeHotKey]
, memberStatuses :: ![MemberStatus]
, outputFormat :: !(Vary [FormatJson, FormatYaml])
, mOutFile :: !(Maybe (File () Out))
}
deriving Show
Expand Down
36 changes: 31 additions & 5 deletions cardano-cli/src/Cardano/CLI/EraBased/Query/Option.hs
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,7 @@ pQueryGetConstitutionCmd era envCli = do
pure
. Opt.hsubparser
. commandWithMetavar "constitution"
. Opt.info (QueryConstitutionCmd <$> pQueryNoArgCmdArgs w envCli)
. Opt.info (QueryConstitutionCmd <$> pQueryNoArgCmdArgs w envCli "constitution")
$ Opt.progDesc "Get the constitution"

pQueryGetGovStateCmd
Expand All @@ -626,7 +626,7 @@ pQueryGetGovStateCmd era envCli = do
pure
. Opt.hsubparser
. commandWithMetavar "gov-state"
. Opt.info (QueryGovStateCmd <$> pQueryNoArgCmdArgs w envCli)
. Opt.info (QueryGovStateCmd <$> pQueryNoArgCmdArgs w envCli "gov-state")
$ Opt.progDesc "Get the governance state"

pQueryGetRatifyStateCmd
Expand All @@ -639,7 +639,7 @@ pQueryGetRatifyStateCmd era envCli = do
pure
. Opt.hsubparser
. commandWithMetavar "ratify-state"
. Opt.info (QueryRatifyStateCmd <$> pQueryNoArgCmdArgs w envCli)
. Opt.info (QueryRatifyStateCmd <$> pQueryNoArgCmdArgs w envCli "ratify-state")
$ Opt.progDesc "Get the ratification state"

pQueryFuturePParamsCmd
Expand All @@ -652,7 +652,7 @@ pQueryFuturePParamsCmd era envCli = do
pure
. Opt.hsubparser
. commandWithMetavar "future-pparams"
. Opt.info (QueryFuturePParamsCmd <$> pQueryNoArgCmdArgs w envCli)
. Opt.info (QueryFuturePParamsCmd <$> pQueryNoArgCmdArgs w envCli "future-pparams")
$ Opt.progDesc "Get the protocol parameters that will apply at the next epoch"

-- TODO Conway: DRep State and DRep Stake Distribution parsers use DRep keys to obtain DRep credentials. This only
Expand Down Expand Up @@ -692,6 +692,11 @@ pQueryDRepStateCmd era envCli = do
]
]
)
<*> pFormatFlags
"drep-state query output"
[ flagFormatJson & setDefault
, flagFormatYaml
]
<*> pMaybeOutputFile

pQueryDRepStakeDistributionCmd
Expand All @@ -713,6 +718,11 @@ pQueryDRepStakeDistributionCmd era envCli = do
QueryDRepStakeDistributionCmdArgs w
<$> pQueryCommons era envCli
<*> pAllOrOnlyDRepHashSource
<*> pFormatFlags
"drep-stake-distribution query output"
[ flagFormatJson & setDefault
, flagFormatYaml
]
<*> pMaybeOutputFile

pQueryProposalsCmd
Expand All @@ -737,6 +747,11 @@ pQueryProposalsCmd era envCli = do
QueryProposalsCmdArgs w
<$> pQueryCommons (convert w) envCli
<*> pAllOrOnlyGovActionIds
<*> pFormatFlags
"proposals query output"
[ flagFormatJson & setDefault
, flagFormatYaml
]
<*> optional pOutputFile

pQuerySPOStakeDistributionCmd
Expand Down Expand Up @@ -786,6 +801,11 @@ pQueryGetCommitteeStateCmd era envCli = do
<*> many pCommitteeColdVerificationKeyOrHashOrFileOrScriptHash
<*> many pCommitteeHotKeyOrHashOrFileOrScriptHash
<*> many pMemberStatus
<*> pFormatFlags
"committee-state query output"
[ flagFormatJson & setDefault
, flagFormatYaml
]
<*> pMaybeOutputFile

pCommitteeColdVerificationKeyOrHashOrFileOrScriptHash
Expand Down Expand Up @@ -881,10 +901,16 @@ pQueryNoArgCmdArgs
. ()
=> ConwayEraOnwards era
-> EnvCli
-> String
-> Parser (QueryNoArgCmdArgs era)
pQueryNoArgCmdArgs w envCli =
pQueryNoArgCmdArgs w envCli name =
QueryNoArgCmdArgs w
<$> pQueryCommons (convert w) envCli
<*> pFormatFlags
(name <> " query output")
[ flagFormatJson & setDefault
, flagFormatYaml
]
<*> pMaybeOutputFile

pQueryCommons
Expand Down
Loading
Loading