optima-0.3.0.1: demo/Main.hs
module Main where
import Prelude
import qualified Optima
import qualified Attoparsec.Data as Attoparsec
import qualified Data.Text as Text
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)