#!/usr/bin/bash # CONSTANTS BASEDIR=$(dirname "$0") # FUNCTIONS function install_rails_templating { if [[ ! -d $HOME/.local/rails ]]; then mkdir -p $HOME/.local/rails ln -sf $(realpath $BASEDIR/src/railsrc) $HOME/.railsrc ln -sf $(realpath $BASEDIR/src/template.rb) $HOME/.local/rails/template.rb echo rails-templating installed succesfully! else echo rails-templating already installed! fi } function install_ruby { if ! command -v ruby >/dev/null; then ruby_version=$(wget_semver github jdx/ruby) mise set GEM_INSTALL_OPTS="--no-document" mise use --global ruby@${ruby_version} else echo 'ruby already installed!' fi if ! command -v rails >/dev/null; then mise exec -- gem install rails else echo 'rails already installed!' fi } function install_mise { if [[ ! -f $HOME/.local/bin/mise ]]; then echo -n 'installing mise...' curl -s https://mise.run | sh 2>&1 >/dev/null echo OK fi if [[ ! -f $HOME/.bashrc ]] || ! grep -q '.local/bin/mise activate bash' $HOME/.bashrc; then echo "eval \"\$($HOME/.local/bin/mise activate bash)\"" >>$HOME/.bashrc source $HOME/.bashrc mise version fi if [[ ! -f $HOME/.config/mise/config.toml ]]; then mise self-update -y 2>&1 >/dev/null mise settings set experimental true mise use -g usage mise settings add idiomatic_version_file_enable_tools ruby echo mise install successfully for development else echo mise already installed! fi } function install_miaou_bash { if ! command -v curl >/dev/null; then sudo apt install -y git curl fi if [[ ! -d /opt/miaou-bash ]]; then curl https://git.artcode.re/miaou/miaou-bash/raw/branch/main/install.sh | sudo bash -s else echo miaou-bash already installed! fi } function install_debian_packages { sudo apt-get install -y git build-essential libssl-dev libreadline-dev zlib1g-dev } # MAIN set -Eue install_debian_packages install_miaou_bash install_mise install_ruby install_rails_templating