| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: true | 
					
						
							| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  | module Utils | 
					
						
							| 
									
										
										
										
											2020-08-19 07:50:49 +02:00
										 |  |  |   module Bottles | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  |     class << self | 
					
						
							| 
									
										
										
										
											2018-04-07 20:28:56 +01:00
										 |  |  |       undef tag | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  |       def tag | 
					
						
							| 
									
										
										
										
											2020-07-08 09:41:12 -07:00
										 |  |  |         if Hardware::CPU.intel? | 
					
						
							|  |  |  |           MacOS.version.to_sym | 
					
						
							|  |  |  |         else | 
					
						
							| 
									
										
										
										
											2020-07-08 12:30:45 -07:00
										 |  |  |           "#{Hardware::CPU.arch}_#{MacOS.version.to_sym}".to_sym | 
					
						
							| 
									
										
										
										
											2020-07-08 09:41:12 -07:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     class Collector | 
					
						
							|  |  |  |       private | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-07 20:28:56 +01:00
										 |  |  |       alias generic_find_matching_tag find_matching_tag | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  |       def find_matching_tag(tag) | 
					
						
							| 
									
										
										
										
											2019-06-05 19:48:38 -07:00
										 |  |  |         # Used primarily by developers testing beta macOS releases. | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  |         if OS::Mac.prerelease? && Homebrew::EnvConfig.developer? && | 
					
						
							|  |  |  |            Homebrew::EnvConfig.skip_or_later_bottles? | 
					
						
							| 
									
										
										
										
											2019-06-05 19:48:38 -07:00
										 |  |  |           generic_find_matching_tag(tag) | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           generic_find_matching_tag(tag) || | 
					
						
							|  |  |  |             find_older_compatible_tag(tag) | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-12 22:04:47 +01:00
										 |  |  |       # Find a bottle built for a previous version of macOS. | 
					
						
							|  |  |  |       def find_older_compatible_tag(tag) | 
					
						
							| 
									
										
										
										
											2019-11-06 14:31:03 +00:00
										 |  |  |         tag_version = begin | 
					
						
							|  |  |  |           MacOS::Version.from_symbol(tag) | 
					
						
							| 
									
										
										
										
											2020-06-10 10:06:46 +01:00
										 |  |  |         rescue MacOSVersionError | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  |           return | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         keys.find do |key| | 
					
						
							| 
									
										
										
										
											2019-11-06 14:31:03 +00:00
										 |  |  |           MacOS::Version.from_symbol(key) <= tag_version | 
					
						
							| 
									
										
										
										
											2020-06-10 10:06:46 +01:00
										 |  |  |         rescue MacOSVersionError | 
					
						
							| 
									
										
										
										
											2019-11-06 14:31:03 +00:00
										 |  |  |           false | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |