-
-
Notifications
You must be signed in to change notification settings - Fork 9.3k
/
bottles.rb
47 lines (40 loc) 路 1.09 KB
/
bottles.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# frozen_string_literal: true
module Utils
class Bottles
class << self
undef tag
def tag
tag = MacOS.version.to_sym
tag = "#{tag}_arm".to_sym if Hardware::CPU.arm?
tag
end
end
class Collector
private
alias generic_find_matching_tag find_matching_tag
def find_matching_tag(tag)
# Used primarily by developers testing beta macOS releases.
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
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
return
end
keys.find do |key|
MacOS::Version.from_symbol(key) <= tag_version
rescue MacOSVersionError
false
end
end
end
end
end