@@ -18,6 +18,10 @@ test_ruby() {
18
18
" ${HOMEBREW_REQUIRED_RUBY_VERSION} " 2> /dev/null
19
19
}
20
20
21
+ system_ruby_supported () {
22
+ ([[ -z " ${HOMEBREW_MACOS} " ]] || can_use_ruby_from_path)
23
+ }
24
+
21
25
can_use_ruby_from_path () {
22
26
if [[ -n " ${HOMEBREW_DEVELOPER} " || -n " ${HOMEBREW_TESTS} " ]] && [[ -n " ${HOMEBREW_USE_RUBY_FROM_PATH} " ]]
23
27
then
@@ -39,47 +43,37 @@ find_first_valid_ruby() {
39
43
done
40
44
}
41
45
42
- # HOMEBREW_MACOS is set by brew.sh
43
46
# HOMEBREW_PATH is set by global.rb
44
47
# shellcheck disable=SC2154
45
48
find_ruby () {
46
- if [[ -n " ${HOMEBREW_MACOS} " ]] && ! can_use_ruby_from_path
47
- then
48
- echo " /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby"
49
- else
50
- local valid_ruby
49
+ local valid_ruby
51
50
52
- # Prioritise rubies from the filtered path (/usr/bin etc) unless explicitly overridden.
53
- if ! can_use_ruby_from_path
54
- then
55
- # function which() is set by brew.sh
56
- # it is aliased to `type -P`
57
- # shellcheck disable=SC2230
58
- valid_ruby=$( find_first_valid_ruby < <( which -a ruby) )
59
- fi
60
-
61
- if [[ -z " ${valid_ruby} " ]]
62
- then
63
- # Same as above
64
- # shellcheck disable=SC2230
65
- valid_ruby=$( find_first_valid_ruby < <( PATH=" ${HOMEBREW_PATH} " which -a ruby) )
66
- fi
51
+ # Prioritise rubies from the filtered path (/usr/bin etc) unless explicitly overridden.
52
+ if ! can_use_ruby_from_path
53
+ then
54
+ # function which() is set by brew.sh
55
+ # it is aliased to `type -P`
56
+ # shellcheck disable=SC2230
57
+ valid_ruby=$( find_first_valid_ruby < <( which -a ruby) )
58
+ fi
67
59
68
- echo " ${valid_ruby} "
60
+ if [[ -z " ${valid_ruby} " ]]
61
+ then
62
+ # Same as above
63
+ # shellcheck disable=SC2230
64
+ valid_ruby=$( find_first_valid_ruby < <( PATH=" ${HOMEBREW_PATH} " which -a ruby) )
69
65
fi
66
+
67
+ echo " ${valid_ruby} "
70
68
}
71
69
72
70
# HOMEBREW_FORCE_VENDOR_RUBY is from the user environment
73
- # HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH are set by brew.sh
74
71
# shellcheck disable=SC2154
75
72
need_vendored_ruby () {
76
73
if [[ -n " ${HOMEBREW_FORCE_VENDOR_RUBY} " ]]
77
74
then
78
75
return 0
79
- elif [[ -n " ${HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH} " ]] && ! can_use_ruby_from_path
80
- then
81
- return 1
82
- elif ([[ -z " ${HOMEBREW_MACOS} " ]] || can_use_ruby_from_path) && test_ruby " ${HOMEBREW_RUBY_PATH} "
76
+ elif system_ruby_supported && test_ruby " ${HOMEBREW_RUBY_PATH} "
83
77
then
84
78
return 1
85
79
else
@@ -96,8 +90,6 @@ setup-ruby-path() {
96
90
local vendor_ruby_terminfo
97
91
local vendor_ruby_latest_version
98
92
local vendor_ruby_current_version
99
- # When bumping check if HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH (in brew.sh)
100
- # also needs to be changed.
101
93
local ruby_exec
102
94
local upgrade_fail
103
95
local install_fail
@@ -140,7 +132,11 @@ If there's no Homebrew Portable Ruby available for your processor:
140
132
brew vendor-install ruby || odie " ${upgrade_fail} "
141
133
fi
142
134
else
143
- HOMEBREW_RUBY_PATH=" $( find_ruby) "
135
+ if system_ruby_supported
136
+ then
137
+ HOMEBREW_RUBY_PATH=" $( find_ruby) "
138
+ fi
139
+
144
140
if need_vendored_ruby
145
141
then
146
142
brew vendor-install ruby || odie " ${install_fail} "
0 commit comments