Installers/other_software/install_rbenv_and_ruby.sh
2024-06-11 12:50:51 -06:00

65 lines
1.7 KiB
Bash

#!/bin/bash
# Install rbenv and ruby-build
echo "Installing rbenv and ruby-build..."
if ! command -v git &> /dev/null; then
echo "git is not installed. Please install git first."
exit 1
fi
if ! command -v curl &> /dev/null; then
echo "curl is not installed. Please install curl first."
exit 1
fi
if ! command -v make &> /dev/null; then
echo "make is not installed. Please install make first."
exit 1
fi
if [ ! -d "$HOME/.rbenv" ]; then
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo "export PATH=\"\$HOME/.rbenv/bin:\$PATH\"" >> ~/.bashrc
echo "eval \"\$(rbenv init -)\"" >> ~/.bashrc
# shellcheck source=/dev/null
source ~/.bashrc
else
echo "rbenv is already installed."
fi
if [ ! -d "$HOME/.rbenv/plugins/ruby-build" ]; then
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo "export PATH=\"\$HOME/.rbenv/plugins/ruby-build/bin:\$PATH\"" >> ~/.bashrc
# shellcheck source=/dev/null
source ~/.bashrc
else
echo "ruby-build is already installed."
fi
# Get the latest 5 Ruby versions
echo "Fetching latest Ruby versions..."
VERSIONS=$(rbenv install -l 2>/dev/null | grep -E "^\s*\d+\.\d+\.\d+$" | tail -n 5)
# Check if VERSIONS is empty
if [ -z "$VERSIONS" ]; then
echo "No Ruby versions found."
exit 1
fi
# Present the user with options
echo "Please select a Ruby version to install:"
select VERSION in $VERSIONS; do
if [[ -n "$VERSION" ]]; then
echo "You selected $VERSION. Installing..."
rbenv install "$VERSION"
rbenv global "$VERSION"
echo "Ruby $VERSION installed and set as global version."
break
else
echo "Invalid selection. Please try again."
fi
done
echo "Done!"