1616
1717source " bin/deps"
1818
19+ export ruby_version=" $( cat .ruby-version | tr -d ' \n' ) "
20+
1921# —————————————————————————————————————————————————————————————————————————————————————————————————————————————
2022# Private Functions
2123# —————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -30,8 +32,19 @@ __setup.actions() {
3032# —————————————————————————————————————————————————————————————————————————————————————————————————————————————
3133
3234setup.rbenv () {
35+ command -v rbenv > /dev/null || {
36+ if [[ $( uname -s) == " Darwin" ]]; then
37+ command -v brew> /dev/null || /bin/bash -c " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) "
38+ brew.install.packages rbenv ruby-build
39+ brew.upgrade.packages rbenv ruby-build
40+ else
41+ setup.local-rbenv
42+ fi
43+ }
44+ }
45+
46+ setup.local-rbenv () {
3347 local rbenv_home=" ${HOME} /.rbenv"
34- local ruby_version=" $( cat .ruby-version | tr -d ' \n' ) "
3548
3649 if [[ -n $( command -v ruby) ]]; then
3750 local installed_version=" $( ruby -e ' puts RUBY_VERSION' | tr -d ' \n' ) "
@@ -65,9 +78,10 @@ setup.rbenv() {
6578 error " PATH: ${PATH} "
6679 return 1
6780 }
81+ }
6882
69- # Set our current ruby version to the desired one, even if it's not yet there.
70- # This allows the next block to auto-detect it and skip the remainder.
83+ setup. ruby() {
84+ run " rbenv install -s ${ruby_version} "
7185 run " rbenv global ${ruby_version} || true"
7286 # see if we even need to install anything:
7387 local ruby_sdk_marker=" $( rbenv versions | grep " ${ruby_version} " | cut -d ' ' -f 1) "
@@ -171,6 +185,7 @@ setup.main() {
171185 set +e
172186 h2 " Installing required development dependencies for working with rules_ruby and Bazel."
173187 setup.rbenv
188+ setup.ruby
174189 setup.gems
175190 [[ -z ${CI} ]] && setup.git-hook
176191 setup.os-specific " $@ "
0 commit comments