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

View File

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