From bcde6432f3b7e42870ee4b3ee7a6eb06021c62e7 Mon Sep 17 00:00:00 2001 From: Brandon Black Date: Sat, 28 Jul 2012 11:36:08 -0700 Subject: Fix issues with writable? detection in brew doctor Closes Homebrew/homebrew#13689. Signed-off-by: Max Howell There are subtle distinctions between writable? and writable_real? we don't understand precisely why we need this, but it fixes the bugs :/ --- Library/Homebrew/cmd/doctor.rb | 6 +++--- Library/Homebrew/cmd/install.rb | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'Library/Homebrew/cmd') diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb index aef52da87..1d46405b9 100644 --- a/Library/Homebrew/cmd/doctor.rb +++ b/Library/Homebrew/cmd/doctor.rb @@ -279,7 +279,7 @@ def __check_subdir_access base target.find do |d| next unless d.directory? - cant_read << d unless d.writable? + cant_read << d unless d.writable_real? end cant_read.sort! @@ -300,7 +300,7 @@ end def check_access_usr_local return unless HOMEBREW_PREFIX.to_s == '/usr/local' - unless Pathname('/usr/local').writable? then <<-EOS.undent + unless Pathname('/usr/local').writable_real? then <<-EOS.undent The /usr/local directory is not writable. Even if this directory was writable when you installed Homebrew, other software may change permissions on this directory. Some versions of the @@ -322,7 +322,7 @@ end def __check_folder_access base, msg folder = HOMEBREW_PREFIX+base - if folder.exist? and not folder.writable? + 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 diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index 2d2d2903a..aa7987048 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -33,8 +33,8 @@ module Homebrew extend self end def check_writable_install_location - raise "Cannot write to #{HOMEBREW_CELLAR}" if HOMEBREW_CELLAR.exist? and not HOMEBREW_CELLAR.writable? - raise "Cannot write to #{HOMEBREW_PREFIX}" unless HOMEBREW_PREFIX.writable? or HOMEBREW_PREFIX.to_s == '/usr/local' + raise "Cannot write to #{HOMEBREW_CELLAR}" if HOMEBREW_CELLAR.exist? and not HOMEBREW_CELLAR.writable_real? + raise "Cannot write to #{HOMEBREW_PREFIX}" unless HOMEBREW_PREFIX.writable_real? or HOMEBREW_PREFIX.to_s == '/usr/local' end def check_xcode -- cgit v1.2.3