Set secrets.secret_key_base refs #13996
[arvados.git] / services / api / lib / config_loader.rb
index 5cb6e28419e1ff3b35b6e86cd68d6aac49e83e91..90b6d9ddc7b4ab0f7ff38c74c42f70f751c3c69a 100644 (file)
@@ -76,7 +76,7 @@ class ConfigLoader
     remainders
   end
 
-  def coercion_and_check check_cfg
+  def coercion_and_check check_cfg, check_nonempty: true
     @config_types.each do |cfgkey, cfgtype|
       cfg = check_cfg
       k = cfgkey
@@ -114,7 +114,7 @@ class ConfigLoader
       end
 
       if cfgtype == NonemptyString
-        if (!cfg[k] || cfg[k] == "")
+        if (!cfg[k] || cfg[k] == "") && check_nonempty
           raise "#{cfgkey} cannot be empty"
         end
         if cfg[k].is_a? String
@@ -190,9 +190,16 @@ class ConfigLoader
     end
   end
 
-  def self.load path
-    yaml = ERB.new(IO.read path).result(binding)
-    YAML.load(yaml, deserialize_symbols: false)
+  def self.load path, erb: false
+    if File.exist? path
+      yaml = IO.read path
+      if erb
+        yaml = ERB.new(yaml).result(binding)
+      end
+      YAML.load(yaml, deserialize_symbols: false)
+    else
+      {}
+    end
   end
 
 end