Added Ruby gems script

Necessary to provide a single source of truth for installing Ruby
dependencies. This used to be managed by the Ruby Setup project but
that project is being deprecated in favor of this project.
This commit is contained in:
Brooke Kuhlmann
2021-03-14 14:08:18 -06:00
parent c62ef77ce2
commit be9edafe52
5 changed files with 52 additions and 0 deletions

17
bin/install_ruby_gems Executable file
View File

@@ -0,0 +1,17 @@
#! /usr/bin/env bash
# Installs Ruby gems.
set -o nounset
set -o errexit
set -o pipefail
IFS=$'\n\t'
SCRIPT_PATH="$MAC_OS_CONFIG_PATH/bin/install_ruby_gems"
if [[ -x "$SCRIPT_PATH" ]]; then
install_ruby
"$SCRIPT_PATH"
else
printf "WARNING: Ruby gems install script does not exist or is not executable.\n"
fi

View File

@@ -39,6 +39,7 @@ while true; do
printf " m: Install Mac App Store software.\n"
printf " a: Install application software.\n"
printf " x: Install application software extensions.\n"
printf " rg: Install Ruby gems.\n"
printf " rc: Install Rust crates.\n"
printf " d: Apply default settings.\n"
printf " s: Setup installed software.\n"

View File

@@ -188,6 +188,19 @@ install_program() {
}
export -f install_program
# Installs Ruby.
# Parameters: None.
install_ruby() {
local version="$(cat $HOME/.ruby-version | tr -d '\n')"
if [[ ! -x "$(command -v ruby)" && -n $(ruby --version | grep --quiet "$version") ]]; then
$(get_homebrew_bin_root)/ruby-install "ruby-$version"
chruby "$version"
gem update --system && gem update
fi
}
export -f install_ruby
# Installs Rust.
# Parameters: None.
install_rust() {

View File

@@ -22,6 +22,8 @@ process_option() {
bin/install_applications;;
'x')
bin/install_extensions;;
'rg')
bin/install_ruby_gems;;
'rc')
bin/install_rust_crates;;
'd')
@@ -37,6 +39,7 @@ process_option() {
bin/install_app_store
bin/install_applications
bin/install_extensions
bin/install_ruby_gems
bin/install_rust_crates
bin/apply_default_settings
bin/setup_software
@@ -50,6 +53,7 @@ process_option() {
verify_app_store_applications
verify_applications
verify_extensions
verify_ruby_gems
verify_rust_crates;;
'C')
caffeinate_machine;;

View File

@@ -127,6 +127,23 @@ verify_path() {
}
export -f verify_path
# Checks for missing Ruby gems.
verify_ruby_gems() {
local gems="$(gem list --no-versions)"
printf "\nChecking Ruby gems...\n"
while read line; do
if [[ "$line" == "gem install"* ]]; then
local gem=$(printf "$line" | awk '{print $3}')
verify_listed_application "$gem" "${gems[*]}"
fi
done < "$MAC_OS_CONFIG_PATH/bin/install_ruby_gems"
printf "Ruby gems check complete.\n"
}
export -f verify_ruby_gems
# Checks for missing Rust crates.
verify_rust_crates() {
printf "\nChecking Rust crates...\n"