packages feed

avro-piper-1.0.1: app/Options.hs

module Options
where

import           Data.Semigroup      ((<>))
import           Format
import           Options.Applicative

data Options = Options
  { optSchemaRegistry :: String
  , optDelimiter      :: String
  } deriving (Show)

options :: Parser Options
options = Options
  <$> strOption
        (  long "schema-registry"
        <> short 'r'
        <> metavar "URL"
        <> help "Schema registry address (http://localhost:8081)"
        )
  <*> (unescape <$> strOption
        (  long "delim"
        <> short 'D'
        <> metavar "STRING"
        <> help "Delimiter to separate messages on input"
        <> showDefault <> value "\n"
        ))

optionsParser :: ParserInfo Options
optionsParser = info (helper <*> options)
  (  fullDesc
  )

parseOptions :: IO Options
parseOptions = execParser optionsParser