aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
authorMike McQuaid2016-09-17 13:25:32 +0100
committerMike McQuaid2016-09-17 13:25:32 +0100
commit8aa18510c492c0167978df4e209455af4ff215e3 (patch)
tree9591af68c52c7df65080050a22c396d72929ebec /Library/Homebrew/cmd
parent10f2bc2deabad58c4f6b80481ccc913faeb85510 (diff)
downloadbrew-8aa18510c492c0167978df4e209455af4ff215e3.tar.bz2
Always run LinkedKegs migration (if needed).
Ensure that `brew update` always runs the LinkedKegs migration if needed as it may not have been run by `brew update` if it was using `--preinstall` or a `git pull` etc. Also, if the old paths still exist: just use them instead. Finally, always try to unlink/unpin before link/pin. Fixes https://github.com/Homebrew/homebrew-core/issues/4918.
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/update-report.rb10
-rw-r--r--Library/Homebrew/cmd/update.sh1
2 files changed, 9 insertions, 2 deletions
diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb
index fa82c875d..653757a2e 100644
--- a/Library/Homebrew/cmd/update-report.rb
+++ b/Library/Homebrew/cmd/update-report.rb
@@ -172,7 +172,11 @@ module Homebrew
legacy_linked_kegs = HOMEBREW_LIBRARY/"LinkedKegs"
return unless legacy_linked_kegs.directory?
- legacy_linked_kegs.children.each {|f| Keg.new(f.realpath).link }
+ legacy_linked_kegs.children.each do |f|
+ keg = Keg.new(f.realpath)
+ keg.unlink
+ keg.link
+ end
FileUtils.rm_rf legacy_linked_kegs
legacy_pinned_kegs = HOMEBREW_LIBRARY/"PinnedKegs"
@@ -181,7 +185,9 @@ module Homebrew
legacy_pinned_kegs.children.each do |f|
pin_version = Keg.new(f.realpath).version
formula = Formulary.factory(f.basename.to_s)
- FormulaPin.new(formula).pin_at(pin_version)
+ pin = FormulaPin.new(formula)
+ pin.unpin
+ pin.pin_at(pin_version)
end
FileUtils.rm_rf legacy_pinned_kegs
end
diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh
index ee6048ca8..67b3699ed 100644
--- a/Library/Homebrew/cmd/update.sh
+++ b/Library/Homebrew/cmd/update.sh
@@ -534,6 +534,7 @@ EOS
if [[ -n "$HOMEBREW_UPDATED" ||
-n "$HOMEBREW_UPDATE_FAILED" ||
-n "$HOMEBREW_UPDATE_FORCE" ||
+ -d "$HOMEBREW_LIBRARY/LinkedKegs" ||
(-n "$HOMEBREW_DEVELOPER" && -z "$HOMEBREW_UPDATE_PREINSTALL") ]]
then
brew update-report "$@"