etc-0.0.0.0: src/System/Etc.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-|
-}
module System.Etc (
-- * Config
-- $config
Config
, getConfigValue
, getConfigValueWith
, getSelectedConfigSource
, getAllConfigSources
-- * ConfigSpec
-- $config_spec
, ConfigSource (..)
, ConfigValue
, ConfigSpec
, ConfigurationError (..)
, parseConfigSpec
, readConfigSpec
-- ** Resolvers
-- $resolvers
, resolveDefault
, resolveFiles
, resolveEnvPure
, resolveEnv
#ifdef WITH_CLI
, resolvePlainCliPure
, resolveCommandCliPure
, resolvePlainCli
, resolveCommandCli
-- ** CLI Resolver Error type
, getErrorMessage
, CliConfigError(..)
#endif
#ifdef WITH_PRINTER
-- * Printer
-- $printer
, renderConfig
, printPrettyConfig
, hPrintPrettyConfig
#endif
) where
import System.Etc.Internal.Resolver.Default (resolveDefault)
import System.Etc.Internal.Types (Config, ConfigSource (..), ConfigValue)
import System.Etc.Spec
(ConfigSpec, ConfigurationError (..), parseConfigSpec, readConfigSpec)
#ifdef WITH_CLI
import System.Etc.Internal.Resolver.Cli.Command (resolveCommandCli, resolveCommandCliPure)
import System.Etc.Internal.Resolver.Cli.Common (CliConfigError (..), getErrorMessage)
import System.Etc.Internal.Resolver.Cli.Plain (resolvePlainCli, resolvePlainCliPure)
#endif
#ifdef WITH_PRINTER
import System.Etc.Internal.Printer (hPrintPrettyConfig, printPrettyConfig, renderConfig)
#endif
import System.Etc.Internal.Config
(getAllConfigSources, getConfigValue, getConfigValueWith, getSelectedConfigSource)
import System.Etc.Internal.Resolver.Env (resolveEnv, resolveEnvPure)
import System.Etc.Internal.Resolver.File (resolveFiles)
{- $config
Use this functions to fetch values from the Etc.Config and cast them to types
that make sense in your program
-}
{- $config_spec
Use this functions to read the configuration spec. Remember you can
use JSON or YAML(*) filepaths
* The yaml cabal flag must be used to support yaml syntax
-}
{- $resolvers
Use this functions to gather configuration values from different sources
(environment variables, command lines or files). Then compose results
together using the mappend function
-}
{- $printer
Use these function to render the configuration map and understand how the
resolving was performed.
-}