packages feed

hayoo-cli-0.1.0.2: CliOptions.hs

{-# LANGUAGE OverloadedStrings #-}

module CliOptions
( parseArguments
, Opts(..)
)
where

import Options.Applicative

data Opts = Opts
    { showInfo :: Bool
    , query    :: String }
    deriving Show

parser :: Parser Opts
parser = Opts
    <$> switch
        ( long "info"
       <> short 'i'
       <> help "Show description")
    <*> argument str (metavar "QUERY")

parseArguments :: String -> (Opts -> IO ()) -> IO ()
parseArguments ver = (execParser opts >>=)
    where opts = info (helper <*> parser)
            ( fullDesc
           <> progDesc "Search for query using hayoo."
           <> header   ("hayoo - " ++ ver))