aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Howell2012-03-15 16:37:46 +0000
committerMax Howell2012-03-16 00:20:49 +0000
commite0a8ddcd1ef379ea235e6f34b957573f763494bb (patch)
tree7984c6d27026df13cc19e9271f42d474ccf2aadf
parent74c2fc8279498a67f504b9b8c8d4cfcbe24b7aa8 (diff)
downloadbrew-e0a8ddcd1ef379ea235e6f34b957573f763494bb.tar.bz2
Warn about broken symlinks in HOMEBREW_PREFIX
Refs Homebrew/homebrew#10874.
-rw-r--r--Library/Homebrew/cmd/doctor.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb
index 04696da32..4a981f7ca 100644
--- a/Library/Homebrew/cmd/doctor.rb
+++ b/Library/Homebrew/cmd/doctor.rb
@@ -166,6 +166,21 @@ def check_for_other_package_managers
end
end
+def check_for_broken_symlinks
+ broken_symlinks = []
+ %w[lib include sbin bin etc share].each do |d|
+ d = HOMEBREW_PREFIX/d
+ d.find do |pn|
+ broken_symlinks << pn if pn.symlink? and pn.readlink.expand_path.to_s =~ /^#{HOMEBREW_PREFIX}/ and not pn.exist?
+ end
+ end
+ unless broken_symlinks.empty? then <<-EOS.undent
+ Broken symlinks were found. Remove them with `brew prune':
+ #{broken_symlinks * "\n "}
+ EOS
+ end
+end
+
def check_gcc_42
if MacOS.gcc_42_build_version == nil
# Don't show this warning on Xcode 4.2+