audit: lookup unversioned formulae with Formulary.

This means that if e.g. the unversioned formulae exists in another tap
this audit won't produce a false positive.
This commit is contained in:
Mike McQuaid 2017-04-22 13:00:36 +01:00
parent 10d70aa93a
commit 185b1787c6

View File

@ -336,7 +336,18 @@ class FormulaAuditor
problem "File should end with a newline" unless text.trailing_newline?
if formula.versioned_formula?
unversioned_formula = Pathname.new formula.path.to_s.gsub(/@.*\.rb$/, ".rb")
unversioned_formula = begin
# build this ourselves as we want e.g. homebrew/core to be present
full_name = if formula.tap
"#{formula.tap}/#{formula.name}"
else
formula.name
end
Formulary.factory(full_name.gsub(/@.*$/, "")).path
rescue FormulaUnavailableError, TapFormulaAmbiguityError,
TapFormulaWithOldnameAmbiguityError
Pathname.new formula.path.to_s.gsub(/@.*\.rb$/, ".rb")
end
unless unversioned_formula.exist?
unversioned_name = unversioned_formula.basename(".rb")
problem "#{formula} is versioned but no #{unversioned_name} formula exists"