From 90400eceb1d989de4a55c22e721aefae3fee21bf Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Sun, 8 Apr 2012 23:27:34 -0500 Subject: [PATCH] make_relative_symlink: give more specific advice --- Library/Homebrew/extend/pathname.rb | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index 797c89b7e2..454afb0747 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -293,11 +293,23 @@ class Pathname # NOTE only system ln -s will create RELATIVE symlinks quiet_system 'ln', '-s', src.relative_path_from(self.dirname), self.basename if not $?.success? - raise <<-EOS.undent - Could not symlink file: #{src.expand_path} - Check #{self} does not already exist. - Check #{dirname} is writable. - EOS + if self.exist? + raise <<-EOS.undent + Could not symlink file: #{src.expand_path} + Target #{self} already exists. You may need to delete it. + EOS + elsif !dirname.writable? + raise <<-EOS.undent + Could not symlink file: #{src.expand_path} + #{dirname} is not writable. You should change its permissions. + EOS + else + raise <<-EOS.undent + Could not symlink file: #{src.expand_path} + #{self} may already exist. + #{dirname} may not be writable. + EOS + end end end end