in cookbooks/fb_systemd/libraries/systemd_helpers.rb [94:130]
def self.merge_unit(default_systemd_settings, systemd_overrides)
merged = {
'Service' => {},
'Unit' => {},
'Install' => {},
}
default_systemd_settings.each do |k, v|
merged[k] = v.clone
end
if systemd_overrides
['Service', 'Unit', 'Install'].each do |stanza|
systemd_overrides[stanza]&.each do |k, override|
default = merged[stanza][k]
list = override.is_a?(Array) || default.is_a?(Array)
if list
merged[stanza][k] = Array(default) + Array(override)
else
merged[stanza][k] = override
end
end
end
end
merged.reject! { |_k, v| v.empty? }
['Service', 'Unit', 'Install'].each do |stanza|
merged[stanza] = merged[stanza].sort.to_h if merged[stanza]
end
merged
end