diff options
| author | Mike McQuaid | 2013-09-24 19:39:04 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2013-09-24 23:06:10 +0100 |
| commit | 5e13933557a30d5d85604dd90da908289476d05b (patch) | |
| tree | 5d275caa74e71d4c83748c24642a9fa59f254c77 /Library | |
| parent | c464c7549ff591997aff3c624975acedaab3cdb1 (diff) | |
| download | brew-5e13933557a30d5d85604dd90da908289476d05b.tar.bz2 | |
update: untap/retap formulae before/after pull.
This should fix problems like Homebrew/homebrew#19799 where we pull formulae from taps
into core. I want to get something similar merged ASAP so we can pull
GCC into core (see Homebrew/homebrew#20678).
Closes Homebrew/homebrew#19799.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/update.rb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index 09e68f688..b1cb5d967 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -17,9 +17,21 @@ module Homebrew extend self cd HOMEBREW_REPOSITORY git_init_if_necessary + tapped_formulae = Dir['Library/Formula/*'].map do |formula| + path = Pathname.new formula + next unless path.symlink? + Pathname.new(path.realpath.to_s.gsub(/.*Taps\//, '')) + end + tapped_formulae.compact! + unlink_tap_formula(tapped_formulae) + report = Report.new master_updater = Updater.new - master_updater.pull! + begin + master_updater.pull! + ensure + link_tap_formula(tapped_formulae) + end report.merge!(master_updater.report) Dir["Library/Taps/*"].each do |tapd| |
