{-# 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" )