1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
{-# LANGUAGE CPP #-}
module Examples.LongSub where
import Data.Monoid
import Options.Applicative
#if __GLASGOW_HASKELL__ <= 702
(<>) :: Monoid a => a -> a -> a
(<>) = mappend
#endif
data Sample
= Hello [String]
| Goodbye
deriving (Eq, Show)
hello :: Parser Sample
hello =
Hello
<$> many (argument str (metavar "TARGET..."))
<* switch (long "first-flag")
<* switch (long "second-flag")
<* switch (long "third-flag")
<* switch (long "fourth-flag")
sample :: Parser Sample
sample = hsubparser
( command "hello-very-long-sub"
(info hello
(progDesc "Print greeting"))
)
opts :: ParserInfo Sample
opts = info (sample <**> helper) idm
|