salak
Configuration Loader in Haskell.
This library default a standard configuration load process. It can load properties from CommandLine
, Environment
,
JSON value
and Yaml
files. They all load to the same format SourcePack
. Earler property source has higher order
to load property. For example:
CommandLine: --package.a.enabled=true
Environment: PACKAGE_A_ENABLED: false
lookup "package.a.enabled" properties => Just True
CommandLine
has higher order then Environment
, for the former load properties earler then later.
Usage:
data Config = Config
{ name :: Text
, dir :: Maybe Text
, ext :: Int
} deriving (Eq, Show)
instance FromProp Config where
fromProp = Config
<$> "user"
<*> "pwd"
<*> "ext" .?= 1
main = do
c :: Config <- defaultLoadSalak def $ require ""
print c
λ> c
Config {name = "daniel", dir = Nothing, ext = 1}