-
Notifications
You must be signed in to change notification settings - Fork 92
/
AppConfig.scala
25 lines (19 loc) · 1.08 KB
/
AppConfig.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package au.csiro.data61.magda
import com.typesafe.config._
object AppConfig {
def getEnv = if (System.getenv("SCALA_ENV") == null) "local" else System.getenv("SCALA_ENV")
/** The global config, potentially including env-custom settings for libraries like akka */
def conf(envOption: Option[String] = None, allowUnresolved: Boolean = false) = {
val env = envOption match {
case Some(env) => env
case None => getEnv
}
val parseOptions = ConfigParseOptions.defaults().setAllowMissing(false)
val resolveOptions = ConfigResolveOptions.defaults().setAllowUnresolved(allowUnresolved)
val commonGeneralConf = ConfigFactory.load("common.conf", parseOptions, resolveOptions)
val commonEnvConf = ConfigFactory.load("common-env-specific-config/" + env, parseOptions, resolveOptions)
val appConf = ConfigFactory.load("application.conf", parseOptions, resolveOptions)
val envConf = ConfigFactory.load("env-specific-config/" + env, parseOptions, resolveOptions)
envConf.withFallback(appConf).withFallback(commonEnvConf).withFallback(commonGeneralConf)
}
}