concrete-haskell-0.1.0.7: utils/InspectCommunication.hs
{-# LANGUAGE OverloadedStrings, NoMonomorphismRestriction, FlexibleContexts, GADTs, MultiParamTypeClasses, FlexibleInstances #-}
module Main (main) where
import Data.Monoid ((<>))
import qualified Data.Concrete.Utils as CU
import qualified Data.Concrete as C
import qualified Options.Applicative as O
import Options.Applicative (option, auto, short, long, metavar, strOption, help, execParser, info, helper, fullDesc, progDesc, many)
import qualified Data.Vector as V
import Control.Monad (liftM, mapM)
import Data.List (intercalate, concat)
import qualified Data.Text.Lazy as T
import Data.Maybe (fromJust, catMaybes, maybeToList)
data Parameters = Parameters { inputFile :: String
} deriving (Show)
parameters :: O.Parser Parameters
parameters = Parameters
<$> strOption (short 'i'
<> long "input"
<> metavar "INPUT_FILE"
<> help "Text file of JSON objects"
)
main = do
ps <- execParser opts
cs <- CU.readCommunications (inputFile ps)
putStr $ ((T.unpack . T.concat) $ map CU.showCommunication cs)
where
opts = info (helper <*> parameters)
( fullDesc
<> progDesc "Inspect a tar file of serialized Communications"
)