diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb index 419d8556c6af32788dd4bc162e8538fef447b616..836572f0c0791ec65edf542f08c1636f3d64c72c 100644 --- a/Library/Homebrew/cmd/doctor.rb +++ b/Library/Homebrew/cmd/doctor.rb @@ -307,6 +307,14 @@ def __check_subdir_access base end end +def check_access_share_locale + __check_subdir_access 'share/locale' +end + +def check_access_share_man + __check_subdir_access 'share/man' +end + def check_access_usr_local return unless HOMEBREW_PREFIX.to_s == '/usr/local' @@ -322,51 +330,21 @@ def check_access_usr_local end end -def check_access_share_locale - __check_subdir_access 'share/locale' -end - -def check_access_share_man - __check_subdir_access 'share/man' -end - -def __check_folder_access base, msg - folder = HOMEBREW_PREFIX+base - if folder.exist? and not folder.writable_real? - <<-EOS.undent - #{folder} isn't writable. - This can happen if you "sudo make install" software that isn't managed - by Homebrew. - - #{msg} - - You should probably `chown` #{folder} +%w{include etc lib lib/pkgconfig share}.each do |d| + class_eval <<-EOS, __FILE__, __LINE__ + 1 + def check_access_#{d.sub("/", "_")} + if (dir = HOMEBREW_PREFIX+'#{d}').exist? && !dir.writable_real? + <<-EOF.undent + \#{dir} isn't writable. + This can happen if you "sudo make install" software that isn't managed by + by Homebrew. If a brew tries to write a file to this directory, the + install will fail during the link step. + + You should probably `chown` \#{dir} + EOF + end + end EOS - end -end - -def check_access_pkgconfig - __check_folder_access 'lib/pkgconfig', - 'If a brew tries to write a .pc file to this directory, the install will\n'+ - 'fail during the link step.' -end - -def check_access_include - __check_folder_access 'include', - 'If a brew tries to write a header file to this directory, the install will\n'+ - 'fail during the link step.' -end - -def check_access_etc - __check_folder_access 'etc', - 'If a brew tries to write a file to this directory, the install will\n'+ - 'fail during the link step.' -end - -def check_access_share - __check_folder_access 'share', - 'If a brew tries to write a file to this directory, the install will\n'+ - 'fail during the link step.' end def check_access_logs