diff --git a/Library/Homebrew/cmd/migrate.rb b/Library/Homebrew/cmd/migrate.rb index ca8c3ccc3e..1a9b944c5e 100644 --- a/Library/Homebrew/cmd/migrate.rb +++ b/Library/Homebrew/cmd/migrate.rb @@ -29,7 +29,9 @@ module Homebrew def migrate args = migrate_args.parse - args.named.to_resolved_formulae.each do |f| + args.named.to_default_kegs.each do |keg| + f = Formulary.from_keg(keg) + if f.oldname rack = HOMEBREW_CELLAR/f.oldname raise NoSuchKegError, f.oldname if !rack.exist? || rack.subdirs.empty? diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb index 2e40aba574..58c55e18a1 100644 --- a/Library/Homebrew/formulary.rb +++ b/Library/Homebrew/formulary.rb @@ -564,23 +564,16 @@ module Formulary return FormulaLoader.new(name, path) end - if (newref = CoreTap.instance.formula_renames[ref]) - formula_with_that_oldname = core_path(newref) - return FormulaLoader.new(newref, formula_with_that_oldname) if formula_with_that_oldname.file? - end + return TapLoader.new("#{CoreTap.instance}/#{ref}", from: from) if CoreTap.instance.formula_renames.key?(ref) - possible_tap_newname_formulae = [] - Tap.each do |tap| - if (newref = tap.formula_renames[ref]) - possible_tap_newname_formulae << "#{tap.name}/#{newref}" - end - end + possible_taps = Tap.select { |tap| tap.formula_renames.key?(ref) } - if possible_tap_newname_formulae.size > 1 + if possible_taps.size > 1 + possible_tap_newname_formulae = possible_taps.map { |tap| "#{tap}/#{tap.formula_renames[ref]}" } raise TapFormulaWithOldnameAmbiguityError.new(ref, possible_tap_newname_formulae) end - return TapLoader.new(possible_tap_newname_formulae.first, from: from) unless possible_tap_newname_formulae.empty? + return TapLoader.new("#{possible_taps.first}/#{ref}", from: from) unless possible_taps.empty? possible_keg_formula = Pathname.new("#{HOMEBREW_PREFIX}/opt/#{ref}/.brew/#{ref}.rb") return FormulaLoader.new(ref, possible_keg_formula) if possible_keg_formula.file?