update: handle renames on update
This commit is contained in:
parent
7079a00aa7
commit
6b0927944a
@ -1,5 +1,7 @@
|
||||
require "cmd/tap"
|
||||
require "formula_versions"
|
||||
require "migrator"
|
||||
require "formulary"
|
||||
|
||||
module Homebrew
|
||||
def update
|
||||
@ -46,13 +48,47 @@ module Homebrew
|
||||
|
||||
# automatically tap any migrated formulae's new tap
|
||||
report.select_formula(:D).each do |f|
|
||||
next unless (HOMEBREW_CELLAR/f).exist?
|
||||
next unless (dir = HOMEBREW_CELLAR/f).exist?
|
||||
migration = TAP_MIGRATIONS[f]
|
||||
next unless migration
|
||||
tap_user, tap_repo = migration.split "/"
|
||||
install_tap tap_user, tap_repo
|
||||
# update tap for each Tab
|
||||
tabs = dir.subdirs.each.map { |d| Tab.for_keg(Keg.new(d)) }
|
||||
tabs.each { |tab| tab.source["tap"] = "#{tap_user}/homebrew-#{tap_repo}" }
|
||||
tabs.each(&:write)
|
||||
end if load_tap_migrations
|
||||
|
||||
# Migrate installed renamed formulae from main Homebrew repository.
|
||||
if load_formula_renames
|
||||
report.select_formula(:D).each do |oldname|
|
||||
newname = FORMULA_RENAMES[oldname]
|
||||
next unless newname
|
||||
next unless (dir = HOMEBREW_CELLAR/oldname).directory? && !dir.subdirs.empty?
|
||||
|
||||
begin
|
||||
migrator = Migrator.new(Formulary.factory("homebrew/homebrew/#{newname}"))
|
||||
migrator.migrate
|
||||
rescue Migrator::MigratorDifferentTapsError
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Migrate installed renamed formulae from taps
|
||||
report.select_formula(:D).each do |oldname|
|
||||
user, repo, oldname = oldname.split("/", 3)
|
||||
next unless user && repo && oldname
|
||||
tap = Tap.new(user, repo)
|
||||
next unless newname = tap.formula_renames[oldname]
|
||||
next unless (dir = HOMEBREW_CELLAR/oldname).directory? && !dir.subdirs.empty?
|
||||
|
||||
begin
|
||||
migrator = Migrator.new(Formulary.factory("#{user}/#{repo}/#{newname}"))
|
||||
migrator.migrate
|
||||
rescue Migrator::MigratorDifferentTapsError
|
||||
end
|
||||
end
|
||||
|
||||
if report.empty?
|
||||
puts "Already up-to-date."
|
||||
else
|
||||
@ -112,7 +148,13 @@ module Homebrew
|
||||
end
|
||||
|
||||
def load_tap_migrations
|
||||
require "tap_migrations"
|
||||
load "tap_migrations"
|
||||
rescue LoadError
|
||||
false
|
||||
end
|
||||
|
||||
def load_formula_renames
|
||||
load "formula_renames.rb"
|
||||
rescue LoadError
|
||||
false
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user