@@ -11,6 +11,7 @@
1111module Data.Yaml.Config
1212 ( -- * High-level
1313 loadYamlSettings
14+ , loadYamlSettingsArgs
1415 -- ** EnvUsage
1516 , EnvUsage
1617 , ignoreEnv
@@ -34,7 +35,7 @@ import Data.List.NonEmpty (nonEmpty)
3435import Data.Aeson
3536import qualified Data.HashMap.Strict as H
3637import Data.Text (Text, pack)
37−import System.Environment (getEnvironment)
38+import System.Environment (getArgs, getEnvironment)
3839import Control.Arrow ((***))
3940import Control.Monad (forM)
4041import Control.Exception (throwIO)
@@ -195,3 +196,16 @@ loadYamlSettings runTimeFiles compileValues envUsage = do
195196 case fromJSON value of
196197 Error s -> error $ "Could not convert to AppSettings: " ++ s
197198 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