diff options
| author | Mike McQuaid | 2016-05-28 20:09:49 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-05-28 20:11:07 +0100 |
| commit | 7829af75089a9935679c82f631366d8bdafe9659 (patch) | |
| tree | 288420c88518f56b3291c8e8f0a01230c47f69ec | |
| parent | 28d99940de687e010cda40762eedf67dd1f3ddd9 (diff) | |
| download | brew-7829af75089a9935679c82f631366d8bdafe9659.tar.bz2 | |
bottle/test-bot: deep merge bottle JSON hashes.
| -rw-r--r-- | Library/Homebrew/cmd/bottle.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/test-bot.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/utils.rb | 1 | ||||
| -rw-r--r-- | Library/Homebrew/utils/hash.rb | 10 |
4 files changed, 13 insertions, 2 deletions
diff --git a/Library/Homebrew/cmd/bottle.rb b/Library/Homebrew/cmd/bottle.rb index 7c93b2d6b..d1215f0d6 100644 --- a/Library/Homebrew/cmd/bottle.rb +++ b/Library/Homebrew/cmd/bottle.rb @@ -336,7 +336,7 @@ module Homebrew write = ARGV.include? "--write" bottles_hash = ARGV.named.reduce({}) do |hash, json_file| - hash.merge! Utils::JSON.load(IO.read(json_file)) + deep_merge_hashes hash, Utils::JSON.load(IO.read(json_file)) end bottles_hash.each do |formula_name, bottle_hash| diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb index e83f09e68..2480b99fe 100644 --- a/Library/Homebrew/cmd/test-bot.rb +++ b/Library/Homebrew/cmd/test-bot.rb @@ -821,7 +821,7 @@ module Homebrew formula_packaged = {} bottles_hash = json_files.reduce({}) do |hash, json_file| - hash.merge! Utils::JSON.load(IO.read(json_file)) + deep_merge_hashes hash, Utils::JSON.load(IO.read(json_file)) end bottles_hash.each do |formula_name, bottle_hash| diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index caa1a87e2..09bab2c54 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -1,5 +1,6 @@ require "pathname" require "exceptions" +require "utils/hash" require "utils/json" require "utils/inreplace" require "utils/popen" diff --git a/Library/Homebrew/utils/hash.rb b/Library/Homebrew/utils/hash.rb new file mode 100644 index 000000000..63dd02c1a --- /dev/null +++ b/Library/Homebrew/utils/hash.rb @@ -0,0 +1,10 @@ +def deep_merge_hashes(hash1, hash2) + merger = proc do |key, v1, v2| + if Hash === v1 && Hash === v2 + v1.merge v2, &merger + else + v2 + end + end + hash1.merge hash2, &merger +end |
