aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formula_installer.rb9
-rw-r--r--Library/Homebrew/keg.rb10
2 files changed, 10 insertions, 9 deletions
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 61d7608cb..d07fea759 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
+ keg = Keg.new(f.prefix)
+
+ if keg.linked?
opoo "This keg was marked linked already, continuing anyway"
- # otherwise Keg.link will bail
- f.linked_keg.unlink
+ keg.remove_linked_keg_record
end
- keg = Keg.new(f.prefix)
-
begin
keg.link
rescue Keg::ConflictError => e
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index bc96f5356..ffe34a80c 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