 fb8b247db3
			
		
	
	
		fb8b247db3
		
			
		
	
	
	
	
		
			
			* Ignore bottles for older macOS versions * Ignore disabled formulae * Ignore formulae which can't build on the chosen macOS * Improve/fix sort description
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # typed: true
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| module Utils
 | |
|   module Bottles
 | |
|     class << self
 | |
|       undef tag
 | |
| 
 | |
|       def tag
 | |
|         if Hardware::CPU.intel?
 | |
|           MacOS.version.to_sym
 | |
|         else
 | |
|           "#{Hardware::CPU.arch}_#{MacOS.version.to_sym}".to_sym
 | |
|         end
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     class Collector
 | |
|       private
 | |
| 
 | |
|       alias generic_find_matching_tag find_matching_tag
 | |
| 
 | |
|       def find_matching_tag(tag, exact: false)
 | |
|         # Used primarily by developers testing beta macOS releases.
 | |
|         if exact || (OS::Mac.prerelease? && Homebrew::EnvConfig.developer? &&
 | |
|                      Homebrew::EnvConfig.skip_or_later_bottles?)
 | |
|           generic_find_matching_tag(tag)
 | |
|         else
 | |
|           generic_find_matching_tag(tag) ||
 | |
|             find_older_compatible_tag(tag)
 | |
|         end
 | |
|       end
 | |
| 
 | |
|       # Find a bottle built for a previous version of macOS.
 | |
|       def find_older_compatible_tag(tag)
 | |
|         tag_version = begin
 | |
|           MacOS::Version.from_symbol(tag)
 | |
|         rescue MacOSVersionError
 | |
|           nil
 | |
|         end
 | |
| 
 | |
|         return if tag_version.blank?
 | |
| 
 | |
|         keys.find do |key|
 | |
|           key_version = MacOS::Version.from_symbol(key)
 | |
|           next if key_version.arch != tag_version.arch
 | |
| 
 | |
|           key_version <= tag_version
 | |
|         rescue MacOSVersionError
 | |
|           false
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |