Fix keg re-linking logic for failed upgrades
This commit is contained in:
		
							parent
							
								
									48641f3a3a
								
							
						
					
					
						commit
						4bbfe351e2
					
				@ -255,7 +255,7 @@ module Homebrew
 | 
			
		||||
 | 
			
		||||
        oh1 <<~EOS
 | 
			
		||||
          #{f.name} #{f.linked_version} is installed and outdated
 | 
			
		||||
            Upgrading #{Formatted.identifier(f.name)} #{version_upgrade}
 | 
			
		||||
            Upgrading #{Formatter.identifier(f.name)} #{version_upgrade}
 | 
			
		||||
        EOS
 | 
			
		||||
        outdated_kegs = outdated_formulae.map(&:linked_keg).select(&:directory?).map { |k| Keg.new(k.resolved_path) }
 | 
			
		||||
        linked_kegs = outdated_kegs.select(&:linked?)
 | 
			
		||||
@ -295,7 +295,11 @@ module Homebrew
 | 
			
		||||
      ofail e.message
 | 
			
		||||
    ensure
 | 
			
		||||
      # Re-link kegs if upgrade fails
 | 
			
		||||
      linked_kegs.each(&:link) unless f.latest_version_installed?
 | 
			
		||||
      begin
 | 
			
		||||
        linked_kegs.each(&:link) unless f.latest_version_installed?
 | 
			
		||||
        rescue
 | 
			
		||||
          nil
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user