audit, tap: incorporate suggestions from code review

This commit is contained in:
Rylan Polster 2020-11-05 16:09:54 -05:00
parent 089810709c
commit 2a941ec6b1
2 changed files with 13 additions and 14 deletions

View File

@ -121,7 +121,7 @@ module Homebrew
# Run tap audits first # Run tap audits first
if args.tap if args.tap
tap = Tap.fetch(args.tap) tap = Tap.fetch(args.tap)
ta = TapAuditor.new(tap, options) ta = TapAuditor.new(tap, strict: args.strict?)
ta.audit ta.audit
if ta.problems.any? if ta.problems.any?
@ -1158,25 +1158,24 @@ module Homebrew
class TapAuditor class TapAuditor
attr_reader :name, :path, :tap_audit_exceptions, :problems attr_reader :name, :path, :tap_audit_exceptions, :problems
def initialize(tap, options = {}) def initialize(tap, strict:)
@name = tap.name @name = tap.name
@path = tap.path @path = tap.path
@tap_audit_exceptions = tap.audit_exceptions @tap_audit_exceptions = tap.audit_exceptions
@strict = options[:strict] @strict = strict
@problems = [] @problems = []
end end
def audit def audit
audit_json_files audit_json_files
audit_tap_audit_exceptions audit_tap_audit_exceptions
self
end end
def audit_json_files def audit_json_files
Dir[@path/"**/*.json"].each do |file| Pathname.glob(@path/"**/*.json").each do |file|
JSON.parse Pathname.new(file).read JSON.parse file.read
rescue JSON::ParserError rescue JSON::ParserError
problem "#{file.delete_prefix("#{@path}/")} contains invalid JSON" problem "#{file.to_s.delete_prefix("#{@path}/")} contains invalid JSON"
end end
end end
@ -1186,16 +1185,16 @@ module Homebrew
invalid_formulae = [] invalid_formulae = []
formula_names.each do |name| formula_names.each do |name|
invalid_formulae.push name if Formulary.factory(name).tap != @name invalid_formulae << name if Formula[name].tap != @name
rescue FormulaUnavailableError rescue FormulaUnavailableError
invalid_formulae.push name invalid_formulae << name
end end
next if invalid_formulae.empty? next if invalid_formulae.empty?
problem <<~EOS problem <<~EOS
audit_exceptions/#{list_name}.json references audit_exceptions/#{list_name}.json references
formulae that were are found in the #{@name} tap. formulae that are not found in the #{@name} tap.
Invalid formulae: #{invalid_formulae.join(", ")} Invalid formulae: #{invalid_formulae.join(", ")}
EOS EOS
end end

View File

@ -546,12 +546,12 @@ class Tap
def audit_exceptions def audit_exceptions
@audit_exceptions = {} @audit_exceptions = {}
Dir[path/"audit_exceptions/*"].each do |exception_file| Pathname.glob(path/"audit_exceptions/*").each do |exception_file|
list_name = File.basename(exception_file).chomp(".json").to_sym list_name = exception_file.basename.to_s.chomp(".json").to_sym
list_contents = begin list_contents = begin
JSON.parse Pathname.new(exception_file).read JSON.parse exception_file.read
rescue JSON::ParserError rescue JSON::ParserError
nil opoo "#{exception_file} contains invalid JSON"
end end
next if list_contents.nil? next if list_contents.nil?