mdoc-0.2.0.0: src/Mdoc/Examples/OptEnvConf.hs
-- |
--
-- Module : Mdoc.Examples.OptEnvConf
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Mdoc.Examples.OptEnvConf
( conf5
, example1
, example5
) where
import Mdoc.Prelude
import Mdoc.Data.Named
import Mdoc.Data.Page
import Mdoc.Syntax
import OptEnvConf qualified
import OptEnvConf.Mdoc qualified as OptEnvConf
conf5 :: Named
conf5 =
mempty
& (<> OptEnvConf.getPage confParser)
& setSynopsis
( Mdoc
[ MacroLine Bl ["-tag", "-width", "indent", "-compact"]
, MacroLine It [Callable Pa, "/etc/cron.daily", ","]
, MacroLine It [Callable Pa, "/etc/cron.hourly", ","]
, MacroLine It [Callable Pa, "/etc/cron.weekly"]
, MacroLine El []
]
)
& name "crontab" "tables for driving cron"
{- FOURMOLU_DISABLE -}
confParser :: OptEnvConf.Parser ()
confParser = void $ (,)
<$> OptEnvConf.setting [OptEnvConf.conf @String "foo", OptEnvConf.help "Foo's the fooing of fooers"]
<*> OptEnvConf.subConfig "bar" ((,)
<$> OptEnvConf.setting [OptEnvConf.conf @Bool "baz", OptEnvConf.help "Bar's baz of bazzle"]
<*> OptEnvConf.setting [OptEnvConf.conf @[Int] "bat", OptEnvConf.help "Bar's bat is better than that"])
{- FOURMOLU_ENABLE -}
example1 :: Named
example1 =
mempty
& (<> OptEnvConf.getPage exampleParser)
& name "example" "opt-env-conf example"
example5 :: Named
example5 =
mempty
& (<> OptEnvConf.getPage exampleParser)
& setSynopsis
( Mdoc
[ MacroLine Bl ["-tag", "-width", "indent", "-compact"]
, MacroLine It [Callable Pa, ".examplerc.yaml"]
, MacroLine El []
]
)
& name "examplerc" "opt-env-conf example config"
{- FOURMOLU_DISABLE -}
exampleParser :: OptEnvConf.Parser (Bool, Bool, Text, Text, [Text])
exampleParser = (,,,,)
<$> OptEnvConf.setting [OptEnvConf.env "DEBUG", OptEnvConf.conf "debug", OptEnvConf.switch True, OptEnvConf.long "debug", OptEnvConf.help "Enable debug", OptEnvConf.value False]
<*> OptEnvConf.setting [OptEnvConf.conf "verbose", OptEnvConf.switch True, OptEnvConf.short 'v', OptEnvConf.long "verbose", OptEnvConf.value False]
<*> OptEnvConf.setting [OptEnvConf.env "INPUT", OptEnvConf.option, OptEnvConf.reader OptEnvConf.str, OptEnvConf.short 'i', OptEnvConf.metavar "INPUT"]
<*> OptEnvConf.setting [OptEnvConf.conf "file", OptEnvConf.argument, OptEnvConf.reader OptEnvConf.str, OptEnvConf.metavar "FILE"]
<*> OptEnvConf.many (OptEnvConf.setting [OptEnvConf.argument, OptEnvConf.reader OptEnvConf.str, OptEnvConf.metavar "FILE"])
{- FOURMOLU_ENABLE -}