Class | BoxGrinder::Config |
In: |
lib/boxgrinder-core/models/config.rb
lib/boxgrinder-core/models/config.rb |
Parent: | OpenCascade |
# File lib/boxgrinder-core/models/config.rb, line 25 25: def initialize(values = {}) 26: super({}) 27: 28: merge!( 29: :file => ENV['BG_CONFIG_FILE'] || "#{ENV['HOME']}/.boxgrinder/config", 30: :name => 'BoxGrinder Build', 31: :platform => :none, 32: :delivery => :none, 33: :force => false, 34: :log_level => :info, 35: :backtrace => false, 36: :dir => { 37: :root => Dir.pwd, 38: :build => 'build', 39: :cache => '/var/cache/boxgrinder', # required for appliance-creator 40: :tmp => '/tmp' 41: }, 42: :os_config => {}, 43: :platform_config => {}, 44: :delivery_config => {}, 45: :additional_plugins => [] 46: ) 47: 48: if ENV['BG_CONFIG_FILE'] 49: raise "You specified empty configuration file path. Please make sure you set correct path for BG_CONFIG_FILE environment variable." if ENV['BG_CONFIG_FILE'].strip.empty? 50: raise "Configuration file '#{ENV['BG_CONFIG_FILE']}' couldn't be found. Please make sure you set correct path for BG_CONFIG_FILE environment variable." unless File.exists?(ENV['BG_CONFIG_FILE']) 51: end 52: 53: deep_merge!(YAML.load_file(self.file)) if File.exists?(self.file) 54: merge_with_symbols!(values) 55: 56: self.backtrace = true if [:debug, :trace].include?(self.log_level) 57: end
# File lib/boxgrinder-core/models/config.rb, line 25 25: def initialize(values = {}) 26: super({}) 27: 28: merge!( 29: :file => ENV['BG_CONFIG_FILE'] || "#{ENV['HOME']}/.boxgrinder/config", 30: :name => 'BoxGrinder Build', 31: :platform => :none, 32: :delivery => :none, 33: :force => false, 34: :log_level => :info, 35: :backtrace => false, 36: :dir => { 37: :root => Dir.pwd, 38: :build => 'build', 39: :cache => '/var/cache/boxgrinder', # required for appliance-creator 40: :tmp => '/tmp' 41: }, 42: :os_config => {}, 43: :platform_config => {}, 44: :delivery_config => {}, 45: :additional_plugins => [] 46: ) 47: 48: if ENV['BG_CONFIG_FILE'] 49: raise "You specified empty configuration file path. Please make sure you set correct path for BG_CONFIG_FILE environment variable." if ENV['BG_CONFIG_FILE'].strip.empty? 50: raise "Configuration file '#{ENV['BG_CONFIG_FILE']}' couldn't be found. Please make sure you set correct path for BG_CONFIG_FILE environment variable." unless File.exists?(ENV['BG_CONFIG_FILE']) 51: end 52: 53: deep_merge!(YAML.load_file(self.file)) if File.exists?(self.file) 54: merge_with_symbols!(values) 55: 56: self.backtrace = true if [:debug, :trace].include?(self.log_level) 57: end
# File lib/boxgrinder-core/models/config.rb, line 67 67: def deep_merge(first, second) 68: second.each_key do |k| 69: if first[k.to_sym].is_a?(Hash) and second[k].is_a?(Hash) 70: deep_merge(first[k.to_sym], second[k]) 71: else 72: first[k.to_sym] = second[k] 73: end 74: end if second 75: end
# File lib/boxgrinder-core/models/config.rb, line 67 67: def deep_merge(first, second) 68: second.each_key do |k| 69: if first[k.to_sym].is_a?(Hash) and second[k].is_a?(Hash) 70: deep_merge(first[k.to_sym], second[k]) 71: else 72: first[k.to_sym] = second[k] 73: end 74: end if second 75: end
# File lib/boxgrinder-core/models/config.rb, line 63 63: def deep_merge!(h) 64: deep_merge(self, h) 65: end
# File lib/boxgrinder-core/models/config.rb, line 63 63: def deep_merge!(h) 64: deep_merge(self, h) 65: end
# File lib/boxgrinder-core/models/config.rb, line 59 59: def merge_with_symbols!(values) 60: merge!(values.inject({}) { |memo, (k, v)| memo[k.to_sym] = v; memo }) 61: end