Skip to content

Commit 447fa87

Browse files
authored
Merge pull request #950 from IntersectMBO/jordan/20241022-cleanup
Refactor
2 parents 5a421b2 + a0766b4 commit 447fa87

File tree

19 files changed

+171
-235
lines changed

19 files changed

+171
-235
lines changed

cardano-cli/app/cardano-cli.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
#define UNIX
66
#endif
77

8-
import Cardano.CLI.Pretty
9-
8+
import Cardano.Api
109
import Cardano.CLI.Environment (getEnvCli)
1110
import Cardano.CLI.Options (opts, pref)
1211
import Cardano.CLI.Run (renderClientCommandError, runClientCommand)

cardano-cli/cardano-cli.cabal

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ library
7171
Cardano.CLI.Compatible.Run
7272
Cardano.CLI.Compatible.Transaction
7373
Cardano.CLI.Environment
74-
Cardano.CLI.EraBased.Commands
7574
Cardano.CLI.EraBased.Commands.Genesis
7675
Cardano.CLI.EraBased.Commands.Governance
7776
Cardano.CLI.EraBased.Commands.Governance.Actions
@@ -83,8 +82,10 @@ library
8382
Cardano.CLI.EraBased.Commands.StakeAddress
8483
Cardano.CLI.EraBased.Commands.StakePool
8584
Cardano.CLI.EraBased.Commands.TextView
85+
Cardano.CLI.EraBased.Commands.TopLevelCommands
8686
Cardano.CLI.EraBased.Commands.Transaction
8787
Cardano.CLI.EraBased.Options.Common
88+
Cardano.CLI.EraBased.Options.Era
8889
Cardano.CLI.EraBased.Options.Genesis
8990
Cardano.CLI.EraBased.Options.Governance
9091
Cardano.CLI.EraBased.Options.Governance.Actions
@@ -96,6 +97,7 @@ library
9697
Cardano.CLI.EraBased.Options.StakeAddress
9798
Cardano.CLI.EraBased.Options.StakePool
9899
Cardano.CLI.EraBased.Options.TextView
100+
Cardano.CLI.EraBased.Options.TopLevelCommands
99101
Cardano.CLI.EraBased.Options.Transaction
100102
Cardano.CLI.EraBased.Run
101103
Cardano.CLI.EraBased.Run.Genesis
@@ -114,7 +116,6 @@ library
114116
Cardano.CLI.EraBased.Run.TextView
115117
Cardano.CLI.EraBased.Run.Transaction
116118
Cardano.CLI.Helpers
117-
Cardano.CLI.IO.Compat
118119
Cardano.CLI.IO.Lazy
119120
Cardano.CLI.Json.Friendly
120121
Cardano.CLI.Legacy.Commands
@@ -134,7 +135,6 @@ library
134135
Cardano.CLI.Options.Ping
135136
Cardano.CLI.Orphans
136137
Cardano.CLI.Parser
137-
Cardano.CLI.Pretty
138138
Cardano.CLI.Read
139139
Cardano.CLI.Render
140140
Cardano.CLI.Run
@@ -260,6 +260,7 @@ executable cardano-cli
260260
-with-rtsopts=-T
261261

262262
build-depends:
263+
cardano-api,
263264
cardano-cli,
264265
cardano-crypto-class ^>=2.1.2,
265266
optparse-applicative-fork,
@@ -394,7 +395,6 @@ test-suite cardano-cli-golden
394395
tasty-hedgehog,
395396
text,
396397
time,
397-
transformers,
398398
unordered-containers,
399399

400400
build-tool-depends:

cardano-cli/src/Cardano/CLI/Byron/Genesis.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@ module Cardano.CLI.Byron.Genesis
1212
)
1313
where
1414

15-
import Cardano.Api (Key (..), NetworkId, writeSecrets)
15+
import Cardano.Api (Doc, Key (..), NetworkId, pretty, pshow, writeSecrets)
1616
import Cardano.Api.Byron (ByronKey, SerialiseAsRawBytes (..), SigningKey (..),
1717
toByronRequiresNetworkMagic)
1818
import qualified Cardano.Api.Byron as Byron
1919

2020
import Cardano.CLI.Byron.Delegation
2121
import Cardano.CLI.Byron.Key
22-
import Cardano.CLI.Pretty
2322
import Cardano.CLI.Types.Common (GenesisFile (..))
2423
import qualified Cardano.Crypto as Crypto
2524
import Cardano.Prelude (canonicalDecodePretty, canonicalEncodePretty)
2625

26+
import Control.Monad.IO.Class
2727
import Control.Monad.Trans (MonadTrans (..))
2828
import Control.Monad.Trans.Except (ExceptT (..), withExceptT)
2929
import Control.Monad.Trans.Except.Extra (firstExceptT, left, right)

cardano-cli/src/Cardano/CLI/Byron/UpdateProposal.hs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ module Cardano.CLI.Byron.UpdateProposal
1111
)
1212
where
1313

14-
import Cardano.Api (NetworkId, SerialiseAsRawBytes (..), SocketPath)
14+
import Cardano.Api
1515
import Cardano.Api.Byron (AsType (AsByronUpdateProposal), ByronProtocolParametersUpdate,
1616
ByronUpdateProposal, makeByronUpdateProposal, toByronLedgerUpdateProposal)
1717
import qualified Cardano.Api.Byron as Byron
@@ -20,14 +20,11 @@ import Cardano.CLI.Byron.Genesis (ByronGenesisError)
2020
import Cardano.CLI.Byron.Key (ByronKeyFailure, readByronSigningKey)
2121
import Cardano.CLI.Byron.Tx (ByronTxError, nodeSubmitTx)
2222
import Cardano.CLI.Helpers (HelpersError, ensureNewFileLBS, renderHelpersError)
23-
import Cardano.CLI.Pretty
2423
import Cardano.CLI.Types.Common
2524
import Ouroboros.Consensus.Ledger.SupportsMempool (txId)
2625
import Ouroboros.Consensus.Util.Condense (condense)
2726

2827
import Control.Exception (Exception (..))
29-
import Control.Monad.Trans.Except (ExceptT)
30-
import Control.Monad.Trans.Except.Extra (firstExceptT, handleIOExceptT, hoistEither)
3128
import Control.Tracer (stdoutTracer, traceWith)
3229
import Data.Bifunctor (Bifunctor (..))
3330
import qualified Data.ByteString as BS

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import Cardano.CLI.Commands.Key
1313
import Cardano.CLI.Commands.Node
1414
import Cardano.CLI.Commands.Ping (PingCmd (..))
1515
import Cardano.CLI.Compatible.Commands
16-
import Cardano.CLI.EraBased.Commands
1716
import Cardano.CLI.EraBased.Commands.Query
17+
import Cardano.CLI.EraBased.Commands.TopLevelCommands
1818
import Cardano.CLI.Legacy.Commands
1919

2020
import Options.Applicative.Types (ParserInfo (..), ParserPrefs (..))

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

Lines changed: 0 additions & 132 deletions
This file was deleted.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
{-# LANGUAGE GADTs #-}
2+
{-# LANGUAGE LambdaCase #-}
3+
4+
module Cardano.CLI.EraBased.Commands.TopLevelCommands
5+
( AnyEraCommand (..)
6+
, Cmds (..)
7+
, renderAnyEraCommand
8+
, renderCmds
9+
)
10+
where
11+
12+
import Cardano.Api (ShelleyBasedEra (..))
13+
14+
import Cardano.CLI.Commands.Address
15+
import Cardano.CLI.Commands.Key
16+
import Cardano.CLI.Commands.Node
17+
import Cardano.CLI.EraBased.Commands.Genesis
18+
import Cardano.CLI.EraBased.Commands.Query
19+
import Cardano.CLI.EraBased.Commands.StakeAddress
20+
import Cardano.CLI.EraBased.Commands.StakePool
21+
import Cardano.CLI.EraBased.Commands.TextView
22+
import Cardano.CLI.EraBased.Commands.Transaction
23+
import Cardano.CLI.EraBased.Options.Governance (GovernanceCmds, renderGovernanceCmds)
24+
25+
import Data.Text (Text)
26+
import Data.Typeable (Typeable)
27+
28+
data AnyEraCommand where
29+
AnyEraCommandOf :: Typeable era => ShelleyBasedEra era -> Cmds era -> AnyEraCommand
30+
31+
renderAnyEraCommand :: AnyEraCommand -> Text
32+
renderAnyEraCommand = \case
33+
AnyEraCommandOf _ cmd -> renderCmds cmd
34+
35+
data Cmds era
36+
= AddressCmds AddressCmds
37+
| KeyCmds KeyCmds
38+
| GenesisCmds (GenesisCmds era)
39+
| GovernanceCmds (GovernanceCmds era)
40+
| NodeCmds NodeCmds
41+
| QueryCmds (QueryCmds era)
42+
| StakeAddressCmds (StakeAddressCmds era)
43+
| StakePoolCmds (StakePoolCmds era)
44+
| TextViewCmds (TextViewCmds era)
45+
| TransactionCmds (TransactionCmds era)
46+
47+
renderCmds :: Cmds era -> Text
48+
renderCmds = \case
49+
AddressCmds cmd ->
50+
renderAddressCmds cmd
51+
KeyCmds cmd ->
52+
renderKeyCmds cmd
53+
GenesisCmds cmd ->
54+
renderGenesisCmds cmd
55+
GovernanceCmds cmd ->
56+
renderGovernanceCmds cmd
57+
NodeCmds cmd ->
58+
renderNodeCmds cmd
59+
QueryCmds cmd ->
60+
renderQueryCmds cmd
61+
StakeAddressCmds cmd ->
62+
renderStakeAddressCmds cmd
63+
StakePoolCmds cmd ->
64+
renderStakePoolCmds cmd
65+
TextViewCmds cmd ->
66+
renderTextViewCmds cmd
67+
TransactionCmds cmd ->
68+
renderTransactionCmds cmd
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
module Cardano.CLI.EraBased.Options.Era
2+
( pAnyEraCommand
3+
)
4+
where
5+
6+
import Cardano.Api (ShelleyBasedEra (..))
7+
8+
import Cardano.CLI.Environment
9+
import Cardano.CLI.EraBased.Commands.TopLevelCommands
10+
import Cardano.CLI.EraBased.Options.Common
11+
import Cardano.CLI.EraBased.Options.TopLevelCommands
12+
import Cardano.CLI.Parser
13+
14+
import Data.Foldable
15+
import Options.Applicative (Parser)
16+
import qualified Options.Applicative as Opt
17+
18+
pAnyEraCommand :: EnvCli -> Parser AnyEraCommand
19+
pAnyEraCommand envCli =
20+
asum
21+
[ -- Note, byron is ommitted because there is already a legacy command group for it.
22+
23+
subParser "shelley" $
24+
Opt.info (AnyEraCommandOf ShelleyBasedEraShelley <$> pCmds ShelleyBasedEraShelley envCli) $
25+
Opt.progDesc ("Shelley era commands" <> deprecationText)
26+
, subParser "allegra" $
27+
Opt.info (AnyEraCommandOf ShelleyBasedEraAllegra <$> pCmds ShelleyBasedEraAllegra envCli) $
28+
Opt.progDesc ("Allegra era commands" <> deprecationText)
29+
, subParser "mary" $
30+
Opt.info (AnyEraCommandOf ShelleyBasedEraMary <$> pCmds ShelleyBasedEraMary envCli) $
31+
Opt.progDesc ("Mary era commands" <> deprecationText)
32+
, subParser "alonzo" $
33+
Opt.info (AnyEraCommandOf ShelleyBasedEraAlonzo <$> pCmds ShelleyBasedEraAlonzo envCli) $
34+
Opt.progDesc ("Alonzo era commands" <> deprecationText)
35+
, subParser "babbage" $
36+
Opt.info (AnyEraCommandOf ShelleyBasedEraBabbage <$> pCmds ShelleyBasedEraBabbage envCli) $
37+
Opt.progDesc ("Babbage era commands" <> deprecationText)
38+
, subParser "conway" $
39+
Opt.info (AnyEraCommandOf ShelleyBasedEraConway <$> pCmds ShelleyBasedEraConway envCli) $
40+
Opt.progDesc "Conway era commands"
41+
, subParser "latest" $
42+
Opt.info (AnyEraCommandOf ShelleyBasedEraConway <$> pCmds ShelleyBasedEraConway envCli) $
43+
Opt.progDesc "Latest era commands (Conway)"
44+
]

0 commit comments

Comments
 (0)