aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorJack Nagel2014-09-28 01:08:31 -0500
committerJack Nagel2014-09-28 01:11:31 -0500
commitaaaab946eca5b53e7ea9508348634ec280e00b62 (patch)
tree562e4a5b37e857363edd702c9201767c7adfe193 /Library/Homebrew/extend
parent1c71fb42870556c13ab2c5bf04a4bdb47d35ed67 (diff)
downloadbrew-aaaab946eca5b53e7ea9508348634ec280e00b62.tar.bz2
Make inreplace errors fatal
Closes Homebrew/homebrew#32649. Closes Homebrew/homebrew#32703.
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/string.rb17
1 files changed, 11 insertions, 6 deletions
diff --git a/Library/Homebrew/extend/string.rb b/Library/Homebrew/extend/string.rb
index d85e029f3..c921a2a7d 100644
--- a/Library/Homebrew/extend/string.rb
+++ b/Library/Homebrew/extend/string.rb
@@ -56,10 +56,16 @@ end
# used by the inreplace function (in utils.rb)
module StringInreplaceExtension
+ attr_accessor :errors
+
+ def self.extended(str)
+ str.errors = []
+ end
+
def sub! before, after
result = super
unless result
- opoo "inreplace: replacement of '#{before}' with '#{after}' failed"
+ errors << "expected replacement of #{before.inspect} with #{after.inspect}"
end
result
end
@@ -68,7 +74,7 @@ module StringInreplaceExtension
def gsub! before, after, audit_result=true
result = super(before, after)
if audit_result && result.nil?
- opoo "inreplace: replacement of '#{before}' with '#{after}' failed"
+ errors << "expected replacement of #{before.inspect} with #{after.inspect}"
end
result
end
@@ -76,9 +82,8 @@ module StringInreplaceExtension
# Looks for Makefile style variable defintions and replaces the
# value with "new_value", or removes the definition entirely.
def change_make_var! flag, new_value
- new_value = "#{flag}=#{new_value}"
- unless gsub!(/^#{Regexp.escape(flag)}[ \t]*=[ \t]*(.*)$/, new_value, false)
- opoo "inreplace: changing '#{flag}' to '#{new_value}' failed"
+ unless gsub!(/^#{Regexp.escape(flag)}[ \t]*=[ \t]*(.*)$/, "#{flag}=#{new_value}", false)
+ errors << "expected to change #{flag.inspect} to #{new_value.inspect}"
end
end
@@ -87,7 +92,7 @@ module StringInreplaceExtension
Array(flags).each do |flag|
# Also remove trailing \n, if present.
unless gsub!(/^#{Regexp.escape(flag)}[ \t]*=.*$\n?/, "", false)
- opoo "inreplace: removing '#{flag}' failed"
+ errors << "expected to remove #{flag.inspect}"
end
end
end