|
| 1 | +#!/usr/bin/bash |
| 2 | +set -e |
| 3 | + |
| 4 | +USERNAME="${USERNAME:-"${_REMOTE_USER:-"automatic"}"}" |
| 5 | + |
| 6 | +REQUIRED_PACKAGES="curl sudo ca-certificates build-essential" |
| 7 | +RUBY_BUILD_DEPENDENCIES="autoconf patch build-essential rustc libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev uuid-dev libffi-dev" |
| 8 | +PYTHON_BUILD_DEPENDENCIES="libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl git libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev" |
| 9 | + |
| 10 | +apt_get_update() |
| 11 | +{ |
| 12 | + if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then |
| 13 | + echo "Running apt-get update..." |
| 14 | + apt-get update -y |
| 15 | + fi |
| 16 | +} |
| 17 | + |
| 18 | +check_packages() { |
| 19 | + if ! dpkg -s "$@" > /dev/null 2>&1; then |
| 20 | + apt_get_update |
| 21 | + apt-get -y install --no-install-recommends "$@" |
| 22 | + fi |
| 23 | +} |
| 24 | + |
| 25 | +export DEBIAN_FRONTEND=noninteractive |
| 26 | + |
| 27 | +INSTALL_PACKAGES="$REQUIRED_PACKAGES" |
| 28 | + |
| 29 | +if [ "$NO_RUBY_DEPENDENCIES" != "true" ]; then |
| 30 | + INSTALL_PACKAGES="$INSTALL_PACKAGES $RUBY_BUILD_DEPENDENCIES" |
| 31 | +fi |
| 32 | + |
| 33 | +if [ "$NO_PYTHON_DEPENDENCIES" != "true" ]; then |
| 34 | + INSTALL_PACKAGES="$INSTALL_PACKAGES $PYTHON_BUILD_DEPENDENCIES" |
| 35 | +fi |
| 36 | + |
| 37 | +check_packages $INSTALL_PACKAGES |
| 38 | + |
| 39 | +install() { |
| 40 | + curl https://mise.run | MISE_INSTALL_PATH=/usr/local/bin/mise sh |
| 41 | + eval "$(mise activate bash)" |
| 42 | + mise doctor |
| 43 | + cat > /etc/profile.d/mise.sh << EOF |
| 44 | +if [ -n "\$ZSH_VERSION" ]; then |
| 45 | + eval "\$(mise activate zsh)" |
| 46 | +elif [ -n "\$BASH_VERSION" ]; then |
| 47 | + eval "\$(mise activate bash)" |
| 48 | +fi |
| 49 | +EOF |
| 50 | +} |
| 51 | + |
| 52 | +echo "(*) Installing mise-on-place..." |
| 53 | + |
| 54 | +install |
| 55 | + |
| 56 | +# Clean up |
| 57 | +rm -rf /var/lib/apt/lists/* |
| 58 | + |
| 59 | +echo "Done!" |
0 commit comments