Skip to content

Commit ca49409

Browse files
authored
Merge pull request #894 from IntersectMBO/smelc/adapt-to-api-removal-of-optparse
Move parsing helpers from API
2 parents 294c3b9 + fcec670 commit ca49409

File tree

7 files changed

+27
-10
lines changed

7 files changed

+27
-10
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ module Cardano.CLI.Byron.Parsers
2424
)
2525
where
2626

27-
import Cardano.Api hiding (GenesisParameters, UpdateProposal)
27+
import Cardano.Api hiding (GenesisParameters, UpdateProposal, parseFilePath)
2828
import Cardano.Api.Byron (Address (..), ByronProtocolParametersUpdate (..),
2929
toByronLovelace)
3030
import qualified Cardano.Api.Ledger as L

cardano-cli/src/Cardano/CLI/EraBased/Options/Common.hs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212

1313
module Cardano.CLI.EraBased.Options.Common where
1414

15-
import Cardano.Api
15+
import Cardano.Api hiding (bounded, parseFilePath)
1616
import qualified Cardano.Api.Ledger as L
17-
import Cardano.Api.Shelley
17+
import Cardano.Api.Shelley hiding (bounded, parseFilePath)
1818

1919
import Cardano.CLI.Environment (EnvCli (..), envCliAnyShelleyBasedEra,
2020
envCliAnyShelleyToBabbageEra)
@@ -26,7 +26,7 @@ import Cardano.CLI.Types.Key
2626
import Cardano.CLI.Types.Key.VerificationKey
2727
import qualified Ouroboros.Network.Protocol.LocalStateQuery.Type as Consensus
2828

29-
import Control.Monad (mfilter, void)
29+
import Control.Monad (mfilter, void, when)
3030
import qualified Data.Aeson as Aeson
3131
import Data.Bifunctor
3232
import Data.Bits (Bits, toIntegralSized)
@@ -55,6 +55,7 @@ import qualified Text.Parsec.Error as Parsec
5555
import qualified Text.Parsec.Language as Parsec
5656
import qualified Text.Parsec.String as Parsec
5757
import qualified Text.Parsec.Token as Parsec
58+
import qualified Text.Read as Read
5859
import Text.Read (readEither, readMaybe)
5960

6061
command' :: String -> String -> Parser a -> Mod CommandFields a
@@ -72,6 +73,22 @@ prefixFlag prefix longFlag =
7273
Nothing -> longFlag
7374
Just prefix' -> prefix' <> "-" <> longFlag
7475

76+
bounded :: forall a. (Bounded a, Integral a, Show a) => String -> Opt.ReadM a
77+
bounded t = Opt.eitherReader $ \s -> do
78+
i <- Read.readEither @Integer s
79+
when (i < fromIntegral (minBound @a)) $ Left $ t <> " must not be less than " <> show (minBound @a)
80+
when (i > fromIntegral (maxBound @a)) $ Left $ t <> " must not greater than " <> show (maxBound @a)
81+
pure (fromIntegral i)
82+
83+
parseFilePath :: String -> String -> Opt.Parser FilePath
84+
parseFilePath optname desc =
85+
Opt.strOption
86+
( Opt.long optname
87+
<> Opt.metavar "FILEPATH"
88+
<> Opt.help desc
89+
<> Opt.completer (Opt.bashCompleter "file")
90+
)
91+
7592
pNetworkIdDeprecated :: Parser NetworkId
7693
pNetworkIdDeprecated =
7794
asum

cardano-cli/src/Cardano/CLI/EraBased/Options/Genesis.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module Cardano.CLI.EraBased.Options.Genesis
99
)
1010
where
1111

12-
import Cardano.Api hiding (QueryInShelleyBasedEra (..))
12+
import Cardano.Api hiding (QueryInShelleyBasedEra (..), parseFilePath)
1313
import Cardano.Api.Ledger (Coin (..))
1414

1515
import Cardano.Chain.Common (BlockCount (BlockCount))

cardano-cli/src/Cardano/CLI/EraBased/Options/Key.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module Cardano.CLI.EraBased.Options.Key
88
)
99
where
1010

11-
import Cardano.Api hiding (QueryInShelleyBasedEra (..))
11+
import Cardano.Api hiding (QueryInShelleyBasedEra (..), parseFilePath)
1212

1313
import Cardano.CLI.EraBased.Commands.Key
1414
import Cardano.CLI.EraBased.Options.Common

cardano-cli/src/Cardano/CLI/Legacy/Options.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ module Cardano.CLI.Legacy.Options
2121
)
2222
where
2323

24-
import Cardano.Api hiding (QueryInShelleyBasedEra (..))
24+
import Cardano.Api hiding (QueryInShelleyBasedEra (..), parseFilePath)
2525
import Cardano.Api.Ledger (Coin (..))
26-
import Cardano.Api.Shelley hiding (QueryInShelleyBasedEra (..))
26+
import Cardano.Api.Shelley hiding (QueryInShelleyBasedEra (..), parseFilePath)
2727

2828
import Cardano.Chain.Common (BlockCount (BlockCount))
2929
import Cardano.CLI.Environment

cardano-cli/src/Cardano/CLI/Legacy/Options/Key.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module Cardano.CLI.Legacy.Options.Key
88
)
99
where
1010

11-
import Cardano.Api hiding (QueryInShelleyBasedEra (..))
11+
import Cardano.Api hiding (QueryInShelleyBasedEra (..), parseFilePath)
1212

1313
import Cardano.CLI.EraBased.Options.Common
1414
import Cardano.CLI.Legacy.Commands.Key

cardano-cli/src/Cardano/CLI/Options/Debug.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ module Cardano.CLI.Options.Debug
1111
)
1212
where
1313

14-
import Cardano.Api.Shelley hiding (QueryInShelleyBasedEra (..))
14+
import Cardano.Api.Shelley hiding (QueryInShelleyBasedEra (..), parseFilePath)
1515

1616
import Cardano.CLI.Commands.Debug
1717
import Cardano.CLI.Commands.Debug.LogEpochState

0 commit comments

Comments
 (0)