aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorXu Cheng2015-08-18 19:33:24 +0800
committerXu Cheng2015-08-20 15:47:41 +0800
commitb6c64ae46a2eafd27057ea2bca724186bf7ddc13 (patch)
tree0fb1f1acdf5171edc986bbf36434c24aec47b3f4 /Library
parentab363ea1d9881c3a60cc0870714bf142d23f454d (diff)
downloadbrew-b6c64ae46a2eafd27057ea2bca724186bf7ddc13.tar.bz2
also lock oldname when applied
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formula.rb5
-rw-r--r--Library/Homebrew/keg.rb8
2 files changed, 12 insertions, 1 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 7ca2007bb..8fb220ba8 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -689,10 +689,15 @@ class Formula
def lock
@lock = FormulaLock.new(name)
@lock.lock
+ if oldname && (oldname_rack = HOMEBREW_CELLAR/oldname).exist? && oldname_rack.resolved_path == rack
+ @oldname_lock = FormulaLock.new(oldname)
+ @oldname_lock.lock
+ end
end
def unlock
@lock.unlock unless @lock.nil?
+ @oldname_lock.unlock unless @oldname_lock.nil?
end
def pinnable?
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index 007d7bcfa..4c6819244 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -216,7 +216,13 @@ class Keg
end
def lock
- FormulaLock.new(name).with_lock { yield }
+ FormulaLock.new(name).with_lock do
+ if oldname_opt_record
+ FormulaLock.new(oldname_opt_record.basename.to_s).with_lock { yield }
+ else
+ yield
+ end
+ end
end
def completion_installed?(shell)