From 1e805e04f9f13483c32c5b06bca593087d2e90b9 Mon Sep 17 00:00:00 2001 From: Dawid Dziurla Date: Sat, 25 Jul 2020 11:20:32 +0200 Subject: [PATCH] bump-formula-pr: fix when no 'version' stanza in formula found Without this fix, a command like: `brew bump-formula-pr --version=0.3.3 --tag=v0.3.3 --revision=... test-formula-git-revision` will fail because: ``` Error: no implicit conversion of nil into String /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/bump-formula-pr.rb:281:in `escape' /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/bump-formula-pr.rb:281:in `bump_formula_pr' /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb:111:in `
' ``` Additionally, reject all `nil` replacement pairs by calling `compact` method. --- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index 951d5207f0..f00a3c0ec1 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -276,11 +276,16 @@ module Homebrew /^( +)(mirror "#{Regexp.escape(new_mirrors.last)}"\n)/m, "\\1\\2\\1version \"#{new_version}\"\n", ] - else + elsif new_url [ /^( +)(url "#{Regexp.escape(new_url)}"\n)/m, "\\1\\2\\1version \"#{new_version}\"\n", ] + elsif new_revision + [ + /^( {2})( +)(:revision => "#{new_revision}"\n)/m, + "\\1\\2\\3\\1version \"#{new_version}\"\n", + ] end elsif forced_version && new_version == "0" replacement_pairs << [ @@ -288,7 +293,7 @@ module Homebrew "", ] end - new_contents = inreplace_pairs(formula.path, replacement_pairs.uniq) + new_contents = inreplace_pairs(formula.path, replacement_pairs.uniq.compact) new_formula_version = formula_version(formula, requested_spec, new_contents)