Skip to content

Commit 20e3852

Browse files
committed
BUG FIX: Merge scripts needs to do a deep merge
1 parent 3842a9a commit 20e3852

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

cf-java-logging-support-core/beats/scripts/merge_templates.rb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/usr/bin/env ruby
1+
#!/usr/bin/env ruby
22

33
require 'json'
44

@@ -9,9 +9,19 @@
99
template_name = ARGV.shift
1010
merged_template = {}
1111

12+
def deep_merge(dst, src)
13+
dst.merge!(src) {
14+
|key, oldval, newval|
15+
if oldval.kind_of?(Hash) && newval.kind_of?(Hash)
16+
deep_merge(oldval, newval)
17+
else
18+
newval
19+
end
20+
}
21+
end
1222
ARGV.each do |tfile|
1323
t = JSON::load(File.new(tfile))
14-
merged_template.merge!(t)
24+
deep_merge(merged_template, t)
1525
end
1626

1727
merged_template['template'] = template_name

0 commit comments

Comments
 (0)