fromArgsSettings #583
This commit is contained in:
parent
f0f85a0a03
commit
97b78ad481
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user