interp-1.0.0.0: app/Main.hs
{-# LANGUAGE LambdaCase #-}
module Main where
import Control.Monad.Except
import Data.Text (unpack, Text)
import Options.Applicative
import System.IO
import Data.Text.Interp (doInterp, opts, Input(..))
run :: Input -> IO (Either Text Text)
run (Input sf tf) = runExceptT $ doInterp sf tf
main :: IO ()
main = execParser opts >>= run >>= \case
(Left e) -> hPutStrLn stderr $ unpack e
(Right v) -> hPutStrLn stdout $ unpack v