From 3e61e3b4288f7eabe4b7e894dc10df6eba270bf9 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Sat, 10 Feb 2024 14:56:53 +0100 Subject: [PATCH] Stop following recursive tap migrations. --- Library/Homebrew/cask/cask_loader.rb | 13 +++++++++---- Library/Homebrew/formulary.rb | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/cask/cask_loader.rb b/Library/Homebrew/cask/cask_loader.rb index cf2ac67abb..8f26061834 100644 --- a/Library/Homebrew/cask/cask_loader.rb +++ b/Library/Homebrew/cask/cask_loader.rb @@ -534,10 +534,15 @@ module Cask new_tap = Tap.fetch(new_tap_name) new_tap.ensure_installed! new_tapped_token = "#{new_tap_name}/#{token}" - token, tap, = tap_cask_token_type(new_tapped_token, warn: false) - old_token = tapped_token - new_token = new_tap.core_cask_tap? ? token : new_tapped_token - type = :migration + + if tapped_token == new_tapped_token + opoo "Tap migration for #{tapped_token} points to itself, stopping recursion." + else + token, tap, = tap_cask_token_type(new_tapped_token, warn: false) + old_token = tapped_token + new_token = new_tap.core_cask_tap? ? token : new_tapped_token + type = :migration + end end opoo "Cask #{old_token} was renamed to #{new_token}." if warn && old_token && new_token diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb index e12eb93962..19316cd98a 100644 --- a/Library/Homebrew/formulary.rb +++ b/Library/Homebrew/formulary.rb @@ -921,10 +921,15 @@ module Formulary new_tap = Tap.fetch new_tap_name new_tap.ensure_installed! new_tapped_name = "#{new_tap_name}/#{name}" - name, tap, = Formulary.tap_formula_name_type(new_tapped_name, warn: false) - old_name = tapped_name - new_name = new_tap.core_tap? ? name : new_tapped_name - type = :migration + + if tapped_name == new_tapped_name + opoo "Tap migration for #{tapped_name} points to itself, stopping recursion." + else + name, tap, = tap_formula_name_type(new_tapped_name, warn: false) + old_name = tapped_name + new_name = new_tap.core_tap? ? name : new_tapped_name + type = :migration + end end opoo "Formula #{old_name} was renamed to #{new_name}." if warn && old_name && new_name