From 1eaa95b805dc8cd8e25630bd2c47d1b2c484a47a Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Sun, 17 Jul 2016 01:59:54 +0800 Subject: [PATCH] Keg#link: run optlink first This prevents a link conflict during `brew upgrade` causing opt link stuck to old version. At this point, users will have to run `brew switch` to fix it. Closes #533. Signed-off-by: Xu Cheng --- Library/Homebrew/keg.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 9adf657fed..67b66a2dc0 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -304,6 +304,8 @@ class Keg ObserverPathnameExtension.reset_counts! + optlink(mode) unless mode.dry_run + # yeah indeed, you have to force anything you need in the main tree into # these dirs REMEMBER that *NOT* everything needs to be in the main tree link_dir("etc", mode) { :mkpath } @@ -366,10 +368,7 @@ class Keg end end - unless mode.dry_run - make_relative_symlink(linked_keg_record, path, mode) - optlink(mode) - end + make_relative_symlink(linked_keg_record, path, mode) unless mode.dry_run rescue LinkError unlink raise