buffet-0.2.0: src/Buffet/Test/ParseArguments.hs
module Buffet.Test.ParseArguments
( get
) where
import qualified Buffet.Ir.Ir as Ir
import qualified Buffet.Test.Configuration as Configuration
import qualified Buffet.Toolbox.ExceptionTools as ExceptionTools
import qualified Control.Exception as Exception
import qualified Data.Map.Strict as Map
import qualified Data.Text as T
import qualified Data.Yaml as Yaml
import Prelude (FilePath, IO, Show, ($), (.), maybe, mconcat, pure, show)
data Exception =
Exception FilePath Yaml.ParseException
instance Show Exception where
show (Exception path exception) =
mconcat [path, ":\n", Yaml.prettyPrintParseException exception]
instance Exception.Exception Exception
get :: Configuration.Configuration -> IO (Map.Map Ir.Option T.Text)
get =
maybe
(pure Map.empty)
(\file ->
ExceptionTools.eitherThrow (Exception file) $ Yaml.decodeFileEither file) .
Configuration.arguments