Skip to content

Commit b20d557

Browse files
committed
replace panic with runOrThrowIO when parseNodeConfig
1 parent b61e1ae commit b20d557

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

cardano-db-sync/src/Cardano/DbSync/Config.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import qualified Data.ByteString.Char8 as BS
3636
import qualified Data.Text as Text
3737
import qualified Data.Yaml as Yaml
3838
import System.FilePath (takeDirectory, (</>))
39+
import Cardano.DbSync.Error (runOrThrowIO)
3940

4041
configureLogging :: SyncNodeParams -> Text -> IO (Trace IO Text)
4142
configureLogging params loggingName = do
@@ -49,7 +50,7 @@ configureLogging params loggingName = do
4950
readSyncNodeConfig :: ConfigFile -> IO SyncNodeConfig
5051
readSyncNodeConfig (ConfigFile fp) = do
5152
pcfg <- adjustNodeFilePath . parseSyncPreConfig <$> readByteString fp "DbSync"
52-
ncfg <- parseNodeConfig <$> readByteString (pcNodeConfigFilePath pcfg) "node"
53+
ncfg <- runOrThrowIO . parseNodeConfig =<< readByteString (pcNodeConfigFilePath pcfg) "node"
5354
coalesceConfig pcfg ncfg (mkAdjustPath pcfg)
5455
where
5556
parseSyncPreConfig :: ByteString -> SyncPreConfig

cardano-db-sync/src/Cardano/DbSync/Config/Node.hs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ module Cardano.DbSync.Config.Node (
1515

1616
import qualified Cardano.Chain.Update as Byron
1717
import Cardano.Crypto (RequiresNetworkMagic (..))
18-
import Cardano.Db (textShow)
1918
import Cardano.DbSync.Config.Types
2019
import Cardano.Prelude
2120
import Data.Aeson (FromJSON (..), Object, (.:), (.:?))
2221
import qualified Data.Aeson as Aeson
2322
import Data.Aeson.Types (Parser)
2423
import qualified Data.Yaml as Yaml
2524
import qualified Ouroboros.Consensus.Cardano.CanHardFork as Shelley
25+
import Data.String (String)
2626

2727
data NodeConfig = NodeConfig
2828
{ ncProtocol :: !SyncProtocol
@@ -49,11 +49,17 @@ data NodeConfig = NodeConfig
4949
ncConwayHardFork :: !Shelley.TriggerHardFork
5050
}
5151

52-
parseNodeConfig :: ByteString -> NodeConfig
52+
newtype NodeConfigParseError =
53+
NodeConfigParseError String
54+
deriving (Show)
55+
56+
instance Exception NodeConfigParseError
57+
58+
parseNodeConfig :: ByteString -> IO (Either NodeConfigParseError NodeConfig)
5359
parseNodeConfig bs =
5460
case Yaml.decodeEither' bs of
55-
Left err -> panic $ "Error parsing node config: " <> textShow err
56-
Right nc -> nc
61+
Left err -> pure $ Left $ NodeConfigParseError ("Error parsing node config: " <> show err)
62+
Right nc -> pure $ Right nc
5763

5864
-- -------------------------------------------------------------------------------------------------
5965

0 commit comments

Comments
 (0)