Class: EbDeployer::ConfigLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/eb_deployer/config_loader.rb

Defined Under Namespace

Classes: EvalBinding

Instance Method Summary collapse

Instance Method Details

#load(options) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/eb_deployer/config_loader.rb', line 21

def load(options)
  options = options.dup
  package_digest = package_digest(options[:package])
  config_file = options.delete(:config_file)
  config_settings = load_config_settings(config_file, package_digest)

  common_settings = symbolize_keys(config_settings.delete(:common))
  common_settings[:version_label] ||= package_digest

  env = options[:environment]
  envs = config_settings.delete(:environments)
  raise 'Environment #{evn} is not defined in #{config_file}' unless envs.has_key?(env)
  env_settings = symbolize_keys(envs[env] || {})
  env_option_settings = env_settings.delete(:option_settings) || []

  ret = options.merge(config_settings).merge(common_settings).merge(env_settings)

  ret[:option_settings] ||= []
  ret[:option_settings] += env_option_settings
  ret
end