module SimpleOptions
( simpleOptions
, Options.addCommand
, Options.simpleVersion
) where
import Control.Applicative
import Control.Monad.Trans.Either (EitherT)
import Control.Monad.Trans.Writer (Writer)
import Data.Monoid
import qualified Options.Applicative.Simple as Options
simpleOptions
:: String
-> String
-> String
-> Options.Parser a
-> EitherT b (Writer (Options.Mod Options.CommandFields b)) ()
-> IO (a,b)
simpleOptions versionString h pd globalParser mcommands =
Options.simpleOptions
versionString h pd globalParser' mcommands
where
globalParser' = summaryOption <*> globalParser
summaryOption = Options.infoOption h
$ Options.long "summary"
<> Options.help "Show program summary"