Audit taps for duplicates in aliases/renames.

This commit is contained in:
Markus Reiter 2024-02-08 15:30:20 +01:00
parent fe5769f7ba
commit b6c061ad18
No known key found for this signature in database
GPG Key ID: 245293B51702655B

View File

@ -6,7 +6,7 @@ module Homebrew
#
# @api private
class TapAuditor
attr_reader :name, :path, :formula_names, :formula_aliases, :cask_tokens,
attr_reader :name, :path, :formula_names, :formula_aliases, :formula_renames, :cask_tokens,
:tap_audit_exceptions, :tap_style_exceptions, :tap_pypi_formula_mappings, :problems
sig { params(tap: Tap, strict: T.nilable(T::Boolean)).void }
@ -23,6 +23,7 @@ module Homebrew
@formula_aliases = tap.aliases.map do |formula_alias|
formula_alias.split("/").last
end
@formula_renames = tap.formula_renames
@formula_names = tap.formula_names.map do |formula_name|
formula_name.split("/").last
end
@ -33,6 +34,7 @@ module Homebrew
def audit
audit_json_files
audit_tap_formula_lists
audit_aliases_renames_duplicates
end
sig { void }
@ -52,6 +54,14 @@ module Homebrew
check_formula_list "pypi_formula_mappings", @tap_pypi_formula_mappings
end
sig { void }
def audit_aliases_renames_duplicates
duplicates = formula_aliases & formula_renames.keys
return if duplicates.none?
problem "The following should either be an alias or a rename, not both: #{duplicates.to_sentence}"
end
sig { params(message: String).void }
def problem(message)
@problems << ({ message: message, location: nil, corrected: false })