51 lines
1.2 KiB
Ruby
Raw Normal View History

2020-10-10 14:16:11 +02:00
# typed: true
# 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
undef tag
2016-04-25 17:57:51 +01:00
def tag
if Hardware::CPU.intel?
MacOS.version.to_sym
else
"#{Hardware::CPU.arch}_#{MacOS.version.to_sym}".to_sym
end
2016-04-25 17:57:51 +01:00
end
end
class Collector
private
alias generic_find_matching_tag find_matching_tag
2016-04-25 17:57:51 +01:00
def find_matching_tag(tag)
# 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?
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
# 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
2016-04-25 17:57:51 +01:00
return
end
keys.find do |key|
MacOS::Version.from_symbol(key) <= tag_version
rescue MacOSVersionError
false
2016-04-25 17:57:51 +01:00
end
end
end
end
end