packages feed

json-to-haskell-0.1.0.0: app/Main.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TypeApplications #-}
module Main where

import JsonToHaskell
import qualified Data.Text.IO as T
import qualified Data.ByteString.Lazy as BL
import Options.Applicative
import System.Exit
import Flags
import Data.Aeson

main :: IO ()
main = do
    opts <- execParser optionsParserInfo
    input <- BL.getContents
    case eitherDecode input of
        Left err -> putStrLn err >> exitWith (ExitFailure 1)
        Right val -> T.putStrLn $ jsonToHaskell opts val