yesod-1.6.2: Creation of type-safe, RESTful web applications.
Safe HaskellNone
LanguageHaskell2010

Yesod.Default.Config2

Description

Some next-gen helper functions for the scaffolding's configuration system.

Synopsis

Locally defined

configSettingsYml :: FilePath Source #

Location of the default config file.

getDevSettings :: Settings -> IO Settings Source #

Helper for getApplicationDev in the scaffolding. Looks up PORT and DISPLAY_PORT and prints appropriate messages.

develMainHelper :: IO (Settings, Application) -> IO () Source #

Helper for develMain in the scaffolding.

makeYesodLogger :: LoggerSet -> IO Logger Source #

Create a Logger value (from yesod-core) out of a LoggerSet (from fast-logger).

Re-exports from Data.Yaml.Config

applyCurrentEnv #

Arguments

:: Bool

require an environment variable to be present?

-> Value 
-> IO Value 

A convenience wrapper around applyEnvValue and getCurrentEnv

Since: yaml-0.8.16

getCurrentEnv :: IO (KeyMap Text) #

Get the actual environment as a HashMap from Text to Text.

Since: yaml-0.8.16

applyEnvValue #

Arguments

:: Bool

require an environment variable to be present?

-> KeyMap Text 
-> Value 
-> Value 

Override environment variable placeholders in the given Value with values from the environment.

If the first argument is True, then all placeholders _must_ be provided by the actual environment. Otherwise, default values from the Value will be used.

Since: yaml-0.8.16

loadYamlSettings #

Arguments

:: FromJSON settings 
=> [FilePath]

run time config files to use, earlier files have precedence

-> [Value]

any other values to use, usually from compile time config. overridden by files

-> EnvUsage 
-> IO settings 

Load the settings from the following three sources:

  • Run time config files
  • Run time environment variables
  • The default compile time config file

For example, to load up settings from config/foo.yaml and allow overriding from the actual environment, you can use:

loadYamlSettings ["config/foo.yaml"] [] useEnv

Since: yaml-0.8.16

loadYamlSettingsArgs #

Arguments

:: FromJSON settings 
=> [Value]

any other values to use, usually from compile time config. overridden by files

-> EnvUsage

use environment variables

-> IO settings 

Same as loadYamlSettings, but get the list of runtime config files from the command line arguments.

Since: yaml-0.8.17

data EnvUsage #

Defines how we want to use the environment variables when loading a config file. Use the smart constructors provided by this module.

Since: yaml-0.8.16

ignoreEnv :: EnvUsage #

Do not use any environment variables, instead relying on defaults values in the config file.

Since: yaml-0.8.16

useEnv :: EnvUsage #

Use environment variables when available, otherwise use defaults.

Since: yaml-0.8.16

requireEnv :: EnvUsage #

Do not use default values from the config file, but instead take all overrides from the environment. If a value is missing, loading the file will throw an exception.

Since: yaml-0.8.16

useCustomEnv :: KeyMap Text -> EnvUsage #

Same as useEnv, but instead of the actual environment, use the provided HashMap as the environment.

Since: yaml-0.8.16

requireCustomEnv :: KeyMap Text -> EnvUsage #

Same as requireEnv, but instead of the actual environment, use the provided HashMap as the environment.

Since: yaml-0.8.16

For backwards compatibility

newtype MergedValue Source #

Constructors

MergedValue 

Instances

Instances details
Semigroup MergedValue Source # 
Instance details

Defined in Yesod.Default.Config2

loadAppSettings Source #

Arguments

:: FromJSON settings 
=> [FilePath]

run time config files to use, earlier files have precedence

-> [Value]

any other values to use, usually from compile time config. overridden by files

-> EnvUsage 
-> IO settings 

Deprecated: Use loadYamlSettings

Load the settings from the following three sources:

  • Run time config files
  • Run time environment variables
  • The default compile time config file

loadAppSettingsArgs Source #

Arguments

:: FromJSON settings 
=> [Value]

any other values to use, usually from compile time config. overridden by files

-> EnvUsage

use environment variables

-> IO settings 

Deprecated: Use loadYamlSettingsArgs

Same as loadAppSettings, but get the list of runtime config files from the command line arguments.