readall: check for shadowed aliases.

This will become particularly relevant when there’s a new version of a
formula and the existing alias needs to be removed.
This commit is contained in:
Mike McQuaid 2017-02-20 14:05:40 +00:00
parent 606790d062
commit 68bd744d0e

View File

@ -24,17 +24,16 @@ module Readall
!failed !failed
end end
def valid_aliases?(alias_dirs) def valid_aliases?(alias_dir, formula_dir)
return false unless alias_dir.directory?
failed = false failed = false
alias_dirs.each do |alias_dir| alias_dir.each_child do |f|
next unless alias_dir.directory?
alias_dir.children.each do |f|
next unless f.symlink? next unless f.symlink?
next if f.file? next if f.file? && !(formula_dir/"#{f.basename}.rb").exist?
onoe "Broken alias: #{f}" onoe "Broken alias: #{f}"
failed = true failed = true
end end
end
!failed !failed
end end
@ -57,7 +56,7 @@ module Readall
def valid_tap?(tap, options = {}) def valid_tap?(tap, options = {})
failed = false failed = false
if options[:aliases] if options[:aliases]
valid_aliases = valid_aliases?([tap.alias_dir]) valid_aliases = valid_aliases?(tap.alias_dir, tap.formula_dir)
failed = true unless valid_aliases failed = true unless valid_aliases
end end
valid_formulae = valid_formulae?(tap.formula_files) valid_formulae = valid_formulae?(tap.formula_files)