inreplace: warn if no substitutions were made

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
Jack Nagel 2012-02-23 21:05:49 -06:00
parent 93b4a131d0
commit a3edec8b88
2 changed files with 9 additions and 3 deletions

View File

@ -17,7 +17,8 @@ module StringInreplaceExtension
# value with "new_value", or removes the definition entirely. # value with "new_value", or removes the definition entirely.
def change_make_var! flag, new_value def change_make_var! flag, new_value
new_value = "#{flag}=#{new_value}" new_value = "#{flag}=#{new_value}"
gsub! Regexp.new("^#{flag}[ \\t]*=[ \\t]*(.*)$"), new_value sub = gsub! Regexp.new("^#{flag}[ \\t]*=[ \\t]*(.*)$"), new_value
opoo "inreplace: changing '#{flag}' to '#{new_value}' failed" if sub.nil?
end end
# Removes variable assignments completely. # Removes variable assignments completely.
@ -26,7 +27,8 @@ module StringInreplaceExtension
flags = [flags] unless flags.kind_of? Array flags = [flags] unless flags.kind_of? Array
flags.each do |flag| flags.each do |flag|
# Also remove trailing \n, if present. # Also remove trailing \n, if present.
gsub! Regexp.new("^#{flag}[ \\t]*=(.*)$\n?"), "" sub = gsub! Regexp.new("^#{flag}[ \\t]*=(.*)$\n?"), ""
opoo "inreplace: removing '#{flag}' failed" if sub.nil?
end end
end end

View File

@ -216,7 +216,11 @@ def inreplace path, before=nil, after=nil
s.extend(StringInreplaceExtension) s.extend(StringInreplaceExtension)
yield s yield s
else else
s.gsub!(before, after) sub = s.gsub!(before, after)
if sub.nil?
opoo "inreplace in '#{path}' failed"
puts "Expected replacement of '#{before}' with '#{after}'"
end
end end
f.reopen(path, 'w').write(s) f.reopen(path, 'w').write(s)