module Option where import qualified Options.Applicative as OP import Data.Monoid ((<>)) delimiter :: OP.Parser Char delimiter = OP.option (character "delimiter") $ OP.short 'd' <> OP.long "delimiter" <> OP.metavar "CHAR" <> OP.value ',' <> OP.help "Field delimiter character" quotation :: OP.Parser Char quotation = OP.option (character "quotation") $ OP.short 'q' <> OP.long "quotation" <> OP.metavar "CHAR" <> OP.value '"' <> OP.help "Quotation mark character" character :: String -> OP.ReadM Char character name = OP.eitherReader $ \str -> case str of [c] -> Right c "\\t" -> Right '\t' _ -> Left $ name ++ " must be one character, which " ++ show str ++ " is not"