packages feed

dhall-text-1.0.0: exec/Main.hs

{-# LANGUAGE DataKinds          #-}
{-# LANGUAGE DeriveAnyClass     #-}
{-# LANGUAGE DeriveGeneric      #-}
{-# LANGUAGE ExplicitNamespaces #-}
{-# LANGUAGE OverloadedStrings  #-}
{-# LANGUAGE TypeOperators      #-}
{-# LANGUAGE RecordWildCards    #-}

import Options.Generic (Generic, ParseRecord, type (<?>)(..))

import qualified Data.Text.Lazy.IO
import qualified Dhall
import qualified Options.Generic

newtype Options = Options
    { explain :: Bool <?> "Explain error messages in detail"
    } deriving (Generic, ParseRecord)

main :: IO ()
main = do
    Options {..} <- Options.Generic.getRecord "Template text using Dhall"
    let detail = if unHelpful explain then Dhall.detailed else id
    code <- Data.Text.Lazy.IO.getContents
    text <- detail (Dhall.input Dhall.auto code)
    Data.Text.Lazy.IO.putStr text