From 8fc4872e795b0c9b757fa95c2f9552c414895311 Mon Sep 17 00:00:00 2001 From: Peter van 't Hof <p.j.van_t_hof@lumc.nl> Date: Mon, 6 Apr 2015 11:35:59 +0200 Subject: [PATCH] Switch defaults from BIOPET_CONFIG env to a defaults var --- .../lumc/sasc/biopet/core/config/Config.scala | 24 ++++++++++++------- .../biopet/core/config/Configurable.scala | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Config.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Config.scala index d2fe78ec2..21fa088ac 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Config.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Config.scala @@ -27,7 +27,8 @@ import scala.reflect.io.Directory * @param map Map with value for new config * @constructor Load config with existing map */ -class Config(var map: Map[String, Any]) extends Logging { +class Config(var map: Map[String, Any], + protected[core] var defaults: Map[String, Any] = Map()) extends Logging { logger.debug("Init phase of config") /** @@ -42,14 +43,14 @@ class Config(var map: Map[String, Any]) extends Logging { * Loading a environmental variable as location of config files to merge into the config * @param valueName Name of value */ - def loadConfigEnv(valueName: String) { + def loadConfigEnv(valueName: String, default: Boolean) { sys.env.get(valueName) match { case Some(globalFiles) => { for (globalFile <- globalFiles.split(":")) { val file: File = new File(globalFile) if (file.exists) { logger.info("Loading config file: " + file) - loadConfigFile(file) + loadConfigFile(file, default) } else logger.warn(valueName + " value found but file '" + file + "' does not exist, no global config is loaded") } } @@ -61,19 +62,24 @@ class Config(var map: Map[String, Any]) extends Logging { * Loading default value for biopet */ def loadDefaultConfig() { - loadConfigEnv("BIOPET_CONFIG") + loadConfigEnv("BIOPET_CONFIG", true) } /** * Merge a json file into the config * @param configFile Location of file */ - def loadConfigFile(configFile: File) { + def loadConfigFile(configFile: File, default: Boolean = false) { val configMap = fileToConfigMap(configFile) - - if (map.isEmpty) map = configMap - else map = mergeMaps(configMap, map) - logger.debug("New config: " + map) + if (default) { + if (defaults.isEmpty) defaults = configMap + else defaults = mergeMaps(configMap, defaults) + logger.debug("New defaults: " + defaults) + } else { + if (map.isEmpty) map = configMap + else map = mergeMaps(configMap, map) + logger.debug("New config: " + map) + } } protected[config] var notFoundCache: List[ConfigValueIndex] = List() diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Configurable.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Configurable.scala index df01a5437..1a3df9eaf 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Configurable.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Configurable.scala @@ -39,7 +39,7 @@ trait Configurable extends ImplicitConversions { /** Map to store defaults for config */ def defaults: Map[String, Any] = { if (root != null) root.defaults - else Map() + else globalConfig.defaults } val config = new ConfigFunctions -- GitLab