aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2017-05-03 11:19:33 +0100
committerGitHub2017-05-03 11:19:33 +0100
commite1ef37953f87759775cbb577ce54c59a89a3013d (patch)
treedd724599abd7fec2b52d3316f9f633e8a6360c9e
parent935a3fd4fc5a7b2991eca9d49214d268f3ebe935 (diff)
parentbf491e5102f52847ba93aad0dc0f2976f86395d6 (diff)
downloadbrew-e1ef37953f87759775cbb577ce54c59a89a3013d.tar.bz2
Merge pull request #2577 from DomT4/keg_only_style_tweaks
caveats: tweak keg_only style
-rw-r--r--Library/Homebrew/caveats.rb2
-rw-r--r--Library/Homebrew/dev-cmd/audit.rb3
-rw-r--r--Library/Homebrew/test/dev-cmd/audit_spec.rb63
3 files changed, 66 insertions, 2 deletions
diff --git a/Library/Homebrew/caveats.rb b/Library/Homebrew/caveats.rb
index 2032e9ff1..ee09063fd 100644
--- a/Library/Homebrew/caveats.rb
+++ b/Library/Homebrew/caveats.rb
@@ -46,7 +46,7 @@ class Caveats
s = <<-EOS.undent
This formula is keg-only, which means it was not symlinked into #{HOMEBREW_PREFIX},
- because #{f.keg_only_reason}.
+ because #{f.keg_only_reason.to_s.chomp}.
EOS
if f.bin.directory? || f.sbin.directory?
s << "\nIf you need to have this software first in your PATH run:\n"
diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb
index be53e1d6f..1081fa0ba 100644
--- a/Library/Homebrew/dev-cmd/audit.rb
+++ b/Library/Homebrew/dev-cmd/audit.rb
@@ -502,6 +502,7 @@ class FormulaAuditor
GPG
GNOME
BSD
+ Firefox
].freeze
reason = formula.keg_only_reason.to_s
@@ -510,7 +511,7 @@ class FormulaAuditor
reason.sub!(name, "")
first_word = reason.split[0]
- if reason =~ /^[A-Z]/ && !reason.start_with?(*whitelist)
+ if reason =~ /\A[A-Z]/ && !reason.start_with?(*whitelist)
problem <<-EOS.undent
'#{first_word}' from the keg_only reason should be '#{first_word.downcase}'.
EOS
diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb
index 771e1ee79..c914a9a20 100644
--- a/Library/Homebrew/test/dev-cmd/audit_spec.rb
+++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb
@@ -322,6 +322,69 @@ describe FormulaAuditor do
.to eq(["Don't recommend setuid in the caveats, suggest sudo instead."])
end
+ describe "#audit_keg_only_style" do
+ specify "keg_only_needs_downcasing" do
+ fa = formula_auditor "foo", <<-EOS.undent, strict: true
+ class Foo < Formula
+ url "http://example.com/foo-1.0.tgz"
+
+ keg_only "Because why not"
+ end
+ EOS
+
+ fa.audit_keg_only_style
+ expect(fa.problems)
+ .to eq(["'Because' from the keg_only reason should be 'because'.\n"])
+ end
+
+ specify "keg_only_redundant_period" do
+ fa = formula_auditor "foo", <<-EOS.undent, strict: true
+ class Foo < Formula
+ url "http://example.com/foo-1.0.tgz"
+
+ keg_only "because this line ends in a period."
+ end
+ EOS
+
+ fa.audit_keg_only_style
+ expect(fa.problems)
+ .to eq(["keg_only reason should not end with a period."])
+ end
+
+ specify "keg_only_handles_block_correctly" do
+ fa = formula_auditor "foo", <<-EOS.undent, strict: true
+ class Foo < Formula
+ url "http://example.com/foo-1.0.tgz"
+
+ keg_only <<-EOF.undent
+ this line starts with a lowercase word.
+
+ This line does not but that shouldn't be a
+ problem
+ EOF
+ end
+ EOS
+
+ fa.audit_keg_only_style
+ expect(fa.problems)
+ .to eq([])
+ end
+
+ specify "keg_only_handles_whitelist_correctly" do
+ fa = formula_auditor "foo", <<-EOS.undent, strict: true
+ class Foo < Formula
+ url "http://example.com/foo-1.0.tgz"
+
+ keg_only "Apple ships foo in the CLT package"
+ end
+ EOS
+
+ fa.audit_keg_only_style
+ expect(fa.problems)
+ .to eq([])
+ end
+ end
+
describe "#audit_homepage" do
specify "homepage URLs" do
fa = formula_auditor "foo", <<-EOS.undent, online: true