You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.2 KiB
88 lines
2.2 KiB
#!/usr/bin/bash
|
|
|
|
# CONSTANTS
|
|
|
|
BASEDIR=$(dirname "$0")
|
|
DEBIAN_PACKAGES="curl git build-essential libssl-dev libreadline-dev zlib1g-dev"
|
|
|
|
# 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_requirements {
|
|
if [[ -n $(dpkg -l $DEBIAN_PACKAGES 2>&1 | tail -n +6 | grep -v ^ii) ]] ; then
|
|
sudo apt-get install -y $DEBIAN_PACKAGES
|
|
else
|
|
echo requirements already installed!
|
|
fi
|
|
}
|
|
|
|
# MAIN
|
|
|
|
set -Eue
|
|
install_requirements
|
|
install_miaou_bash
|
|
install_mise
|
|
install_ruby
|
|
install_rails_templating
|