-
Notifications
You must be signed in to change notification settings - Fork 998
/
Copy pathsettings.rb
36 lines (27 loc) · 1.17 KB
/
settings.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require_relative '../app/services/foreman/version'
require_relative '../app/services/foreman/env_settings_loader'
settings_file = File.join(__dir__, Rails.env.test? ? 'settings.yaml.test' : 'settings.yaml')
SETTINGS = {}
SETTINGS.merge! YAML.load(ERB.new(File.read(settings_file)).result) if File.exist?(settings_file)
SETTINGS[:version] = Foreman::Version.new
# Load settings from env variables
SETTINGS.deep_merge!(Foreman::EnvSettingsLoader.new.to_h)
# Force setting to true until all code using it is removed
[:locations_enabled, :organizations_enabled, :unattended].each do |setting|
SETTINGS[setting] = true
end
# default to true if missing
[:hsts_enabled].each do |setting|
SETTINGS[setting] = SETTINGS.fetch(setting, true)
end
unless SETTINGS[:domain] && SETTINGS[:fqdn]
require 'facter'
SETTINGS[:domain] ||= Facter.value(:domain) || Facter.value(:hostname)
SETTINGS[:fqdn] ||= Facter.value(:fqdn)
end
SETTINGS[:hosts] ||= []
SETTINGS[:trusted_redirect_domains] ||= ['theforeman.org', 'redhat.com', 'orcharhino.com'].freeze
# Load plugin config, if any
Dir["#{__dir__}/settings.plugins.d/*.yaml"].each do |f|
SETTINGS.merge! YAML.load(ERB.new(File.read(f)).result)
end