Skip to content

Commit 10d1841

Browse files
committed
New --out-file option for query stake-snapshots command
1 parent 764838a commit 10d1841

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

cardano-cli/src/Cardano/CLI/Shelley/Commands.hs

+4-2
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,7 @@ data QueryCmd =
365365
AnyConsensusModeParams
366366
NetworkId
367367
(AllOrOnly [Hash StakePoolKey])
368+
(Maybe OutputFile)
368369
| QueryKesPeriodInfo
369370
AnyConsensusModeParams
370371
NetworkId
@@ -513,8 +514,9 @@ data MetadataFile = MetadataFileJSON FilePath
513514

514515
deriving Show
515516

516-
newtype OutputFile
517-
= OutputFile FilePath
517+
newtype OutputFile = OutputFile
518+
{ unOutputFile :: FilePath
519+
}
518520
deriving Show
519521

520522
newtype PoolMetadataFile = PoolMetadataFile

cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs

+1
Original file line numberDiff line numberDiff line change
@@ -1005,6 +1005,7 @@ pQueryCmd =
10051005
<$> pConsensusModeParams
10061006
<*> pNetworkId
10071007
<*> pAllStakePoolsOrOnly
1008+
<*> pMaybeOutputFile
10081009

10091010
pQueryPoolState :: Parser QueryCmd
10101011
pQueryPoolState = QueryPoolState'

cardano-cli/src/Cardano/CLI/Shelley/Run/Query.hs

+9-7
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,8 @@ runQueryCmd cmd =
186186
runQueryStakeAddressInfo consensusModeParams addr network mOutFile
187187
QueryDebugLedgerState' consensusModeParams network mOutFile ->
188188
runQueryLedgerState consensusModeParams network mOutFile
189-
QueryStakeSnapshot' consensusModeParams network allOrOnlyPoolIds ->
190-
runQueryStakeSnapshot consensusModeParams network allOrOnlyPoolIds
189+
QueryStakeSnapshot' consensusModeParams network allOrOnlyPoolIds mOutFile ->
190+
runQueryStakeSnapshot consensusModeParams network allOrOnlyPoolIds mOutFile
191191
QueryProtocolState' consensusModeParams network mOutFile ->
192192
runQueryProtocolState consensusModeParams network mOutFile
193193
QueryUTxO' consensusModeParams qFilter networkId mOutFile ->
@@ -671,8 +671,9 @@ runQueryStakeSnapshot
671671
:: AnyConsensusModeParams
672672
-> NetworkId
673673
-> AllOrOnly [Hash StakePoolKey]
674+
-> Maybe OutputFile
674675
-> ExceptT ShelleyQueryCmdError IO ()
675-
runQueryStakeSnapshot (AnyConsensusModeParams cModeParams) network allOrOnlyPoolIds = do
676+
runQueryStakeSnapshot (AnyConsensusModeParams cModeParams) network allOrOnlyPoolIds mOutFile = do
676677
SocketPath sockPath <- firstExceptT ShelleyQueryCmdEnvVarSocketErr $ newExceptT readEnvSocketPath
677678
let localNodeConnInfo = LocalNodeConnectInfo cModeParams network sockPath
678679

@@ -691,7 +692,7 @@ runQueryStakeSnapshot (AnyConsensusModeParams cModeParams) network allOrOnlyPool
691692
Only poolIds -> Just $ Set.fromList poolIds
692693

693694
result <- executeQuery era cModeParams localNodeConnInfo qInMode
694-
obtainLedgerEraClassConstraints sbe writeStakeSnapshots result
695+
obtainLedgerEraClassConstraints sbe (writeStakeSnapshots mOutFile) result
695696

696697

697698
runQueryLedgerState
@@ -855,15 +856,16 @@ writeLedgerState mOutFile qState@(SerialisedDebugLedgerState serLedgerState) =
855856
writeStakeSnapshots :: forall era ledgerera. ()
856857
=> ShelleyLedgerEra era ~ ledgerera
857858
=> Era.Crypto ledgerera ~ StandardCrypto
858-
=> SerialisedStakeSnapshots era
859+
=> Maybe OutputFile
860+
-> SerialisedStakeSnapshots era
859861
-> ExceptT ShelleyQueryCmdError IO ()
860-
writeStakeSnapshots qState =
862+
writeStakeSnapshots mOutFile qState =
861863
case decodeStakeSnapshot qState of
862864
Left err -> left (ShelleyQueryCmdStakeSnapshotDecodeError err)
863865

864866
Right (StakeSnapshot snapshot) -> do
865867
-- Calculate the three pool and active stake values for the given pool
866-
liftIO . LBS.putStrLn $ encodePretty snapshot
868+
liftIO . (maybe LBS.putStrLn (LBS.writeFile . unOutputFile) mOutFile) $ encodePretty snapshot
867869

868870
-- | This function obtains the pool parameters, equivalent to the following jq query on the output of query ledger-state
869871
-- .nesEs.esLState._delegationState._pstate._pParams.<pool_id>

0 commit comments

Comments
 (0)