| 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 26
26: def initialize(values = {})
27: super({})
28:
29: merge!(
30: :file => ENV['BG_CONFIG_FILE'] || "#{ENV['HOME']}/.boxgrinder/config",
31: :name => 'BoxGrinder Build',
32: :platform => :none,
33: :delivery => :none,
34: :force => false,
35: :log_level => :info,
36: :backtrace => false,
37: :dir => {
38: :root => Dir.pwd,
39: :build => 'build',
40: :cache => '/var/cache/boxgrinder', # required for appliance-creator
41: :tmp => '/tmp'
42: },
43: :os_config => {},
44: :platform_config => {},
45: :delivery_config => {},
46: :additional_plugins => []
47: )
48:
49: if ENV['BG_CONFIG_FILE']
50: 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?
51: 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'])
52: end
53:
54: deep_merge!(YAML.load_file(self.file)) if File.exists?(self.file)
55: merge_with_symbols!(values)
56:
57: self.backtrace = true if [:debug, :trace].include?(self.log_level)
58:
59: populate_user_ids!
60: end
# File lib/boxgrinder-core/models/config.rb, line 26
26: def initialize(values = {})
27: super({})
28:
29: merge!(
30: :file => ENV['BG_CONFIG_FILE'] || "#{ENV['HOME']}/.boxgrinder/config",
31: :name => 'BoxGrinder Build',
32: :platform => :none,
33: :delivery => :none,
34: :force => false,
35: :log_level => :info,
36: :backtrace => false,
37: :dir => {
38: :root => Dir.pwd,
39: :build => 'build',
40: :cache => '/var/cache/boxgrinder', # required for appliance-creator
41: :tmp => '/tmp'
42: },
43: :os_config => {},
44: :platform_config => {},
45: :delivery_config => {},
46: :additional_plugins => []
47: )
48:
49: if ENV['BG_CONFIG_FILE']
50: 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?
51: 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'])
52: end
53:
54: deep_merge!(YAML.load_file(self.file)) if File.exists?(self.file)
55: merge_with_symbols!(values)
56:
57: self.backtrace = true if [:debug, :trace].include?(self.log_level)
58:
59: populate_user_ids!
60: end
# File lib/boxgrinder-core/models/config.rb, line 70
70: def deep_merge(first, second)
71: second.each_key do |k|
72: if first[k.to_sym].is_a?(Hash) and second[k].is_a?(Hash)
73: deep_merge(first[k.to_sym], second[k])
74: else
75: first[k.to_sym] = second[k]
76: end
77: end if second
78: end
# File lib/boxgrinder-core/models/config.rb, line 70
70: def deep_merge(first, second)
71: second.each_key do |k|
72: if first[k.to_sym].is_a?(Hash) and second[k].is_a?(Hash)
73: deep_merge(first[k.to_sym], second[k])
74: else
75: first[k.to_sym] = second[k]
76: end
77: end if second
78: end
# File lib/boxgrinder-core/models/config.rb, line 66
66: def deep_merge!(h)
67: deep_merge(self, h)
68: end
# File lib/boxgrinder-core/models/config.rb, line 66
66: def deep_merge!(h)
67: deep_merge(self, h)
68: end
# File lib/boxgrinder-core/models/config.rb, line 62
62: def merge_with_symbols!(values)
63: merge!(values.inject({}) { |memo, (k, v)| memo[k.to_sym] = v; memo })
64: end
# File lib/boxgrinder-core/models/config.rb, line 62
62: def merge_with_symbols!(values)
63: merge!(values.inject({}) { |memo, (k, v)| memo[k.to_sym] = v; memo })
64: end
# File lib/boxgrinder-core/models/config.rb, line 80
80: def populate_user_ids!
81: self.uid = Process.uid
82: self.gid = Process.gid
83: begin
84: if env = ENV['SUDO_USER'] || ENV['LOGNAME']
85: user = Etc.getpwnam(env)
86: self.uid = user.uid
87: self.gid = user.gid
88: end
89: rescue ArgumentError #No such name, just use initial defaults.
90: end
91: end
# File lib/boxgrinder-core/models/config.rb, line 80
80: def populate_user_ids!
81: self.uid = Process.uid
82: self.gid = Process.gid
83: begin
84: if env = ENV['SUDO_USER'] || ENV['LOGNAME']
85: user = Etc.getpwnam(env)
86: self.uid = user.uid
87: self.gid = user.gid
88: end
89: rescue ArgumentError #No such name, just use initial defaults.
90: end
91: end