{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RankNTypes #-}

module Cardano.CLI.EraIndependent.Debug.Run
  ( DebugCmdError (..)
  , runLogEpochStateCmd
  , runDebugCmds
  )
where

import Cardano.Api

import Cardano.CLI.Compatible.Exception
import Cardano.CLI.EraIndependent.Debug.CheckNodeConfiguration.Run (runCheckNodeConfig)
import Cardano.CLI.EraIndependent.Debug.Command
import Cardano.CLI.EraIndependent.Debug.LogEpochState.Run
import Cardano.CLI.EraIndependent.Debug.TransactionView.Run (runTransactionViewCmd)
import Cardano.CLI.Type.Error.DebugCmdError

runDebugCmds :: DebugCmds -> CIO e ()
runDebugCmds :: forall e. DebugCmds -> CIO e ()
runDebugCmds = \case
  DebugCheckNodeConfigurationCmd CheckNodeConfigCmdArgs
cmd -> CheckNodeConfigCmdArgs -> CIO e ()
forall e. CheckNodeConfigCmdArgs -> CIO e ()
runCheckNodeConfig CheckNodeConfigCmdArgs
cmd
  DebugLogEpochStateCmd LogEpochStateCmdArgs
cmd -> IO () -> RIO e ()
forall a. IO a -> RIO e a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> RIO e ()) -> IO () -> RIO e ()
forall a b. (a -> b) -> a -> b
$ LogEpochStateCmdArgs -> IO ()
runLogEpochStateCmd LogEpochStateCmdArgs
cmd
  DebugTransactionViewCmd TransactionViewCmdArgs
cmd -> TransactionViewCmdArgs -> CIO e ()
forall e. TransactionViewCmdArgs -> CIO e ()
runTransactionViewCmd TransactionViewCmdArgs
cmd