aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorJack Nagel2015-06-12 20:37:20 -0400
committerJack Nagel2015-06-12 20:37:20 -0400
commitc4dfacaf0ca015bf401d1ca454de9f18a5424ea8 (patch)
treefdb5b5a713d0b9054f765e6a61b5e2d39d6a853e /Library/Homebrew
parentaad4ed7faad0abd7b2240b8a47a6ce3956bed19c (diff)
downloadbrew-c4dfacaf0ca015bf401d1ca454de9f18a5424ea8.tar.bz2
Fix linked keg-only check when only directories are linked
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/cmd/doctor.rb27
1 files changed, 7 insertions, 20 deletions
diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb
index 0c9ce42ff..a60eb9d2a 100644
--- a/Library/Homebrew/cmd/doctor.rb
+++ b/Library/Homebrew/cmd/doctor.rb
@@ -913,38 +913,25 @@ def check_for_autoconf
end
def __check_linked_brew f
- links_found = []
-
prefix = f.prefix
prefix.find do |src|
next if src == prefix
dst = HOMEBREW_PREFIX + src.relative_path_from(prefix)
-
- next if !dst.symlink? || !dst.exist? || src != dst.resolved_path
-
- if src.directory?
- Find.prune
- else
- links_found << dst
- end
+ return true if dst.symlink? && src == dst.resolved_path
end
- return links_found
+ false
end
def check_for_linked_keg_only_brews
return unless HOMEBREW_CELLAR.exist?
- warnings = Hash.new
-
- Formula.each do |f|
- next unless f.keg_only? and f.installed?
- links = __check_linked_brew f
- warnings[f.full_name] = links unless links.empty?
- end
+ linked = Formula.select { |f|
+ f.keg_only? && f.installed? && __check_linked_brew(f)
+ }
- unless warnings.empty?
+ unless linked.empty?
s = <<-EOS.undent
Some keg-only formula are linked into the Cellar.
Linking a keg-only formula, such as gettext, into the cellar with
@@ -958,7 +945,7 @@ def check_for_linked_keg_only_brews
You may wish to `brew unlink` these brews:
EOS
- warnings.each_key { |f| s << " #{f}\n" }
+ linked.each { |f| s << " #{f.full_name}\n" }
s
end
end