From 982a165e52bfcaccefc9bd7492f94f1046ca53e9 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Fri, 27 Jun 2014 16:20:17 -0500 Subject: [PATCH] Use the keg object to manipulate the linked keg record --- Library/Homebrew/formula_installer.rb | 11 +++++------ Library/Homebrew/keg.rb | 10 ++++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 61d7608cb1..d07fea7598 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -546,14 +546,13 @@ class FormulaInstaller end def link - if f.linked_keg.directory? and f.linked_keg.resolved_path == f.prefix - opoo "This keg was marked linked already, continuing anyway" - # otherwise Keg.link will bail - f.linked_keg.unlink - end - keg = Keg.new(f.prefix) + if keg.linked? + opoo "This keg was marked linked already, continuing anyway" + keg.remove_linked_keg_record + end + begin keg.link rescue Keg::ConflictError => e diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index bc96f5356c..ffe34a80c5 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -180,16 +180,18 @@ class Keg end end - if linked? - linked_keg_record.unlink - linked_keg_record.parent.rmdir_if_possible - end + remove_linked_keg_record if linked? dirs.reverse_each(&:rmdir_if_possible) ObserverPathnameExtension.total end + def remove_linked_keg_record + linked_keg_record.unlink + linked_keg_record.parent.rmdir_if_possible + end + def lock FormulaLock.new(name).with_lock { yield } end