forked from mikeyp-dell/core
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrebar-build-json.rb
More file actions
executable file
·65 lines (54 loc) · 1.36 KB
/
rebar-build-json.rb
File metadata and controls
executable file
·65 lines (54 loc) · 1.36 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/ruby
require 'json'
class ::Hash
def deep_merge(second)
merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
self.merge(second, &merger)
end
end
answer = {}
records = Dir.glob("config/*.json")
records.each do |r|
b = JSON.parse( IO.read(r) )
answer = answer.deep_merge(b)
end
answer["networks"] = []
networks = Dir.glob("config/networks/*.json")
networks.each do |n|
net = JSON.parse( IO.read(n) )
answer["networks"] << net
end
answer["deployments"] = []
networks = Dir.glob("config/deployments/*.json")
networks.each do |n|
net = JSON.parse( IO.read(n) )
answer["deployments"] << net
end
answer["services"] = []
services = Dir.glob("config/services/*.json").sort
services.each do |s|
service = JSON.parse( IO.read(s) )
answer["services"] << service
end
answer["filters"] = []
filteres = Dir.glob("config/filters/*.json")
filteres.each do |s|
filter = JSON.parse( IO.read(s) )
answer["filters"] << filter
end
answer["users"] = []
users = Dir.glob("config/users/*.json")
users.each do |u|
user = JSON.parse( IO.read(u) )
answer["users"] << user
end
answer["ssh_keys"] = {}
keys = Dir.glob("config/ssh_keys/*.key")
keys.each do |k|
key_data = IO.readlines(k)
if k =~ /config\/ssh_keys\/(.*).key/
name = $1
end
answer["ssh_keys"][name] = key_data.join("")
end
puts JSON.pretty_generate(answer)