aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2017-02-20 14:05:40 +0000
committerMike McQuaid2017-02-21 15:36:50 +0000
commit68bd744d0e44e40a5e3269bb16030134d937a524 (patch)
treec9b23afc29a9663a23d3c34474a5520d14d3f03b
parent606790d06284df4765128117269c06a4df7e197c (diff)
downloadbrew-68bd744d0e44e40a5e3269bb16030134d937a524.tar.bz2
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.
-rw-r--r--Library/Homebrew/readall.rb19
1 files changed, 9 insertions, 10 deletions
diff --git a/Library/Homebrew/readall.rb b/Library/Homebrew/readall.rb
index 3dd7075ec..52addfa87 100644
--- a/Library/Homebrew/readall.rb
+++ b/Library/Homebrew/readall.rb
@@ -24,16 +24,15 @@ module Readall
!failed
end
- def valid_aliases?(alias_dirs)
+ def valid_aliases?(alias_dir, formula_dir)
+ return false unless alias_dir.directory?
+
failed = false
- alias_dirs.each do |alias_dir|
- next unless alias_dir.directory?
- alias_dir.children.each do |f|
- next unless f.symlink?
- next if f.file?
- onoe "Broken alias: #{f}"
- failed = true
- end
+ alias_dir.each_child do |f|
+ next unless f.symlink?
+ next if f.file? && !(formula_dir/"#{f.basename}.rb").exist?
+ onoe "Broken alias: #{f}"
+ failed = true
end
!failed
end
@@ -57,7 +56,7 @@ module Readall
def valid_tap?(tap, options = {})
failed = false
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
end
valid_formulae = valid_formulae?(tap.formula_files)