on master help sign in
Add loadYamlSettingsArgs
b7ff000Michael Snoyman
ChangeLog.md+4
@@ -1,3 +1,7 @@
1+## 0.8.17
2+
3+* `loadYamlSettingsArgs`
4+
1## 0.8.16.1
5## 0.8.16.1
2
6
3* Slight doc improvement
7* Slight doc improvement
Data/Yaml/Config.hs+15−1
@@ -11,6 +11,7 @@
11module Data.Yaml.Config
11module Data.Yaml.Config
12 ( -- * High-level
12 ( -- * High-level
13 loadYamlSettings
13 loadYamlSettings
14+ , loadYamlSettingsArgs
14 -- ** EnvUsage
15 -- ** EnvUsage
15 , EnvUsage
16 , EnvUsage
16 , ignoreEnv
17 , ignoreEnv
@@ -34,7 +35,7 @@ import Data.List.NonEmpty (nonEmpty)
34import Data.Aeson
35import Data.Aeson
35import qualified Data.HashMap.Strict as H
36import qualified Data.HashMap.Strict as H
36import Data.Text (Text, pack)
37import Data.Text (Text, pack)
37−import System.Environment (getEnvironment)
38+import System.Environment (getArgs, getEnvironment)
38import Control.Arrow ((***))
39import Control.Arrow ((***))
39import Control.Monad (forM)
40import Control.Monad (forM)
40import Control.Exception (throwIO)
41import Control.Exception (throwIO)
@@ -195,3 +196,16 @@ loadYamlSettings runTimeFiles compileValues envUsage = do
195 case fromJSON value of
196 case fromJSON value of
196 Error s -> error $ "Could not convert to AppSettings: " ++ s
197 Error s -> error $ "Could not convert to AppSettings: " ++ s
197 Success settings -> return settings
198 Success settings -> return settings
199+
200+-- | Same as @loadYamlSettings@, but get the list of runtime config files from
201+-- the command line arguments.
202+--
203+-- @since 0.8.17
204+loadYamlSettingsArgs
205+ :: FromJSON settings
206+ => [Value] -- ^ any other values to use, usually from compile time config. overridden by files
207+ -> EnvUsage -- ^ use environment variables
208+ -> IO settings
209+loadYamlSettingsArgs values env = do
210+ args <- getArgs
211+ loadYamlSettings args values env
yaml.cabal+1−1
@@ -1,5 +1,5 @@
1name: yaml
1name: yaml
2−version: 0.8.16.1
2+version: 0.8.17
3license: BSD3
3license: BSD3
4license-file: LICENSE
4license-file: LICENSE
5author: Michael Snoyman <michael@snoyman.com>, Anton Ageev <antage@gmail.com>,Kirill Simonov
5author: Michael Snoyman <michael@snoyman.com>, Anton Ageev <antage@gmail.com>,Kirill Simonov