From f6b5c83482b9ebbd390831f41767f9dd9b33162f Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Thu, 27 Mar 2014 09:35:10 -0500 Subject: [PATCH] Fix conflicting symlink advice Closes Homebrew/homebrew#27899. --- Library/Homebrew/extend/pathname.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index c9c233144e..1ec35b9cd1 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -298,23 +298,22 @@ 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? - if self.exist? + if symlink? && exist? || symlink? raise <<-EOS.undent Could not symlink file: #{src.expand_path} - Target #{self} already exists. You may need to delete it. + Target #{self} already exists as a symlink to #{readlink}. + If this file is from another formula, you may need to + `brew unlink` it. Otherwise, you may want to delete it. To force the link and overwrite all other conflicting files, do: brew link --overwrite formula_name To list all files that would be deleted: brew link --overwrite --dry-run formula_name EOS - # #exist? will return false for symlinks whose target doesn't exist - elsif self.symlink? + elsif exist? raise <<-EOS.undent Could not symlink file: #{src.expand_path} - Target #{self} already exists as a symlink to #{readlink}. - If this file is from another formula, you may need to - `brew unlink` it. Otherwise, you may want to delete it. + Target #{self} already exists. You may need to delete it. To force the link and overwrite all other conflicting files, do: brew link --overwrite formula_name