packages feed

gtvm-hs-1.0.0: app/Common/IO.hs

module Common.IO where

import Data.Aeson
import Data.Yaml qualified as Yaml
import Data.ByteString qualified as BS
import Control.Monad.IO.Class

-- TODO: bad. decoding may fail, that's why we gotta do this.
badParseYAML :: forall a m. (MonadIO m, FromJSON a) => BS.ByteString -> m a
badParseYAML bs =
    case Yaml.decodeEither' bs of
      Left err      -> do
        liftIO $ putStrLn "error decoding YAML: "
        liftIO $ print err
        error "fucko"
        --liftIO $ Exit.exitWith (Exit.ExitFailure 1)
      Right decoded -> return decoded