optima-0.4.0.4: demo/Main.hs
module Main where
import qualified Attoparsec.Data as Attoparsec
import qualified Data.Text as Text
import qualified Optima
import Prelude
main = parseOpts >>= print
where
parseOpts =
Optima.params
"Demo"
( liftA3
(,,)
( Optima.param
(Just 'a')
"arg-a"
( Optima.value
"Description of A"
(Optima.showable True)
Optima.unformatted
(Optima.explicitlyParsed Attoparsec.bool)
)
)
( Optima.group
"group1"
( liftA2
(,)
( Optima.member
"bb"
( Optima.value
"Description of B"
Optima.defaultless
Optima.unformatted
(Optima.explicitlyParsed Attoparsec.text)
)
)
(Optima.member "d" textParam)
)
)
( Optima.group
"group-of-alternatives"
( asum
[ Optima.member "e" textParam,
Optima.subgroup
"subgroup"
( asum
[ Optima.member "f" textParam,
Optima.member "g" (flag $> "slkdfjsdkj"),
Text.concat <$> some (Optima.member "h" textParam)
]
)
]
)
)
)
where
textParam = Optima.value "Text param" Optima.defaultless Optima.unformatted (Optima.explicitlyParsed Attoparsec.text)
flag = Optima.flag "Flag type 1"
bytesParam = Optima.value "" Optima.defaultless Optima.unformatted (Optima.explicitlyParsed Attoparsec.utf8Bytes)