packages feed

hw-xml-0.4.0.0: app/App/Options.hs

module App.Options
  ( optionParser
  , textOption
  ) where

import Data.Text (Text)

import qualified Data.Attoparsec.Text as AT
import qualified Data.Text            as T
import qualified Options.Applicative  as OA

optionParser :: AT.Parser a -> OA.Mod OA.OptionFields a -> OA.Parser a
optionParser p = OA.option (OA.eitherReader (AT.parseOnly p . T.pack))

textOption :: OA.Mod OA.OptionFields String -> OA.Parser Text
textOption = fmap T.pack . OA.strOption