aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/dev-cmd/bottle.rb32
1 files changed, 21 insertions, 11 deletions
diff --git a/Library/Homebrew/dev-cmd/bottle.rb b/Library/Homebrew/dev-cmd/bottle.rb
index 306296b46..f912109ed 100644
--- a/Library/Homebrew/dev-cmd/bottle.rb
+++ b/Library/Homebrew/dev-cmd/bottle.rb
@@ -289,22 +289,22 @@ module Homebrew
old_spec = f.bottle_specification
if ARGV.include?("--keep-old") && !old_spec.checksums.empty?
- bad_fields = [:root_url, :prefix, :cellar, :rebuild].select do |field|
+ mismatches = [:root_url, :prefix, :cellar, :rebuild].select do |field|
old_spec.send(field) != bottle.send(field)
end
- bad_fields.delete(:cellar) if old_spec.cellar == :any && bottle.cellar == :any_skip_relocation
- unless bad_fields.empty?
+ mismatches.delete(:cellar) if old_spec.cellar == :any && bottle.cellar == :any_skip_relocation
+ unless mismatches.empty?
bottle_path.unlink if bottle_path.exist?
- bad_changes = bad_fields.map do |field|
+ mismatches.map! do |field|
old_value = old_spec.send(field).inspect
- bottle_value = bottle.send(field).inspect
- "#{field}: old: #{old_value}, new: #{bottle_value}"
+ value = bottle.send(field).inspect
+ "#{field}: old: #{old_value}, new: #{value}"
end
odie <<-EOS.undent
--keep-old was passed but there are changes in:
- #{bad_changes.join("\n")}
+ #{mismatches.join("\n")}
EOS
end
end
@@ -383,11 +383,11 @@ module Homebrew
bottle_block_contents.lines.each do |line|
line = line.strip
next if line.empty?
- key, value, _, tag = line.split " ", 4
+ key, value_original, _, tag = line.split " ", 4
valid_key = %w[root_url prefix cellar rebuild sha1 sha256].include? key
next unless valid_key
- value = value.to_s.delete ":'\""
+ value = value_original.to_s.delete ":'\""
tag = tag.to_s.delete ":"
if !tag.empty?
@@ -399,11 +399,21 @@ module Homebrew
next
end
- old_value = bottle_hash["bottle"][key].to_s
+ old_value_original = bottle_hash["bottle"][key]
+ old_value = old_value_original.to_s
next if key == "cellar" && old_value == "any" && value == "any_skip_relocation"
- mismatches << key if old_value.empty? || value != old_value
+ if old_value.empty? || value != old_value
+ old_value = old_value_original.inspect
+ value = value_original.inspect
+ mismatches << "#{field}: old: #{old_value}, new: #{value}"
+ end
end
+
unless mismatches.empty?
+ odie <<-EOS.undent
+ --keep-old was passed but there are changes in:
+ #{mismatches.join("\n")}
+ EOS
odie "--keep-old was passed but there were changes in #{mismatches.join(", ")}!"
end
output = bottle_output bottle