From 5a4ebf394d406ae292c20a2bd171f84ef9325067 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Thu, 20 Nov 2014 09:48:22 +0200 Subject: [PATCH] More EnvUsage constructors --- yesod/Yesod/Default/Config2.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/yesod/Yesod/Default/Config2.hs b/yesod/Yesod/Default/Config2.hs index 6cd08ff8..3feb3c9b 100644 --- a/yesod/Yesod/Default/Config2.hs +++ b/yesod/Yesod/Default/Config2.hs @@ -81,7 +81,11 @@ applyCurrentEnv :: Bool -- ^ require an environment variable to be present? -> Value -> IO Value applyCurrentEnv requireEnv orig = flip (applyEnv requireEnv) orig <$> getCurrentEnv -data EnvUsage = IgnoreEnv | UseEnv | RequireEnv +data EnvUsage = IgnoreEnv + | UseEnv + | RequireEnv + | UseCustomEnv (H.HashMap Text Text) + | RequireCustomEnv (H.HashMap Text Text) -- | Load the settings from the following three sources: -- @@ -113,6 +117,8 @@ loadAppSettings runTimeFiles compileValues envUsage = do IgnoreEnv -> return $ applyEnv False mempty value' UseEnv -> applyCurrentEnv False value' RequireEnv -> applyCurrentEnv True value' + UseCustomEnv env -> return $ applyEnv False env value' + RequireCustomEnv env -> return $ applyEnv True env value' case fromJSON value of Error s -> error $ "Could not convert to AppSettings: " ++ s