aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorJack Nagel2014-06-27 16:20:17 -0500
committerJack Nagel2014-06-27 16:20:17 -0500
commit982a165e52bfcaccefc9bd7492f94f1046ca53e9 (patch)
tree2752d2ed6aa8cb707c25005fce2e2c8c02a3c63c /Library/Homebrew
parent2de2d64907b8dbaeb16998c21b4a5ba702d84478 (diff)
downloadbrew-982a165e52bfcaccefc9bd7492f94f1046ca53e9.tar.bz2
Use the keg object to manipulate the linked keg record
Diffstat (limited to 'Library/Homebrew')
-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