fromArgsSettings #583

This commit is contained in:
Michael Snoyman 2013-08-04 08:33:57 +03:00
parent f0f85a0a03
commit 97b78ad481
2 changed files with 19 additions and 10 deletions

View File

@ -4,6 +4,7 @@
module Yesod.Default.Config
( DefaultEnv (..)
, fromArgs
, fromArgsSettings
, loadDevelopmentConfig
-- reexport
@ -71,19 +72,19 @@ parseArgConfig = do
capitalize [] = []
capitalize (x:xs) = toUpper x : map toLower xs
-- | Load the app config from command line parameters
fromArgs :: (Read env, Show env, Enum env, Bounded env)
=> (env -> Object -> Parser extra)
-> IO (AppConfig env extra)
fromArgs getExtra = do
-- | Load the app config from command line parameters, using the given
-- @ConfigSettings.
--
-- Since 1.2.2
fromArgsSettings :: (Read env, Show env, Enum env, Bounded env)
=> (env -> IO (ConfigSettings env extra))
-> IO (AppConfig env extra)
fromArgsSettings cs = do
args <- parseArgConfig
let env = environment args
let cs = (configSettings env)
{ csParseExtra = getExtra
}
config <- loadConfig cs
config <- cs env >>= loadConfig
env' <- getEnvironment
let config' =
@ -95,6 +96,14 @@ fromArgs getExtra = do
then config' { appPort = port args }
else config'
-- | Load the app config from command line parameters
fromArgs :: (Read env, Show env, Enum env, Bounded env)
=> (env -> Object -> Parser extra)
-> IO (AppConfig env extra)
fromArgs getExtra = fromArgsSettings $ \env -> return (configSettings env)
{ csParseExtra = getExtra
}
-- | Load your development config (when using @'DefaultEnv'@)
loadDevelopmentConfig :: IO (AppConfig DefaultEnv ())
loadDevelopmentConfig = loadConfig $ configSettings Development

View File

@ -1,5 +1,5 @@
name: yesod
version: 1.2.1.1
version: 1.2.2
license: MIT
license-file: LICENSE
author: Michael Snoyman <michael@snoyman.com>