#!/usr/bin/env bash
set -e
[ -n "$RBENV_DEBUG" ] && set -x

# Provide rbenv completions
if [ "$1" = "--complete" ]; then
  exec ruby-build --definitions
fi

if [ -z "$RBENV_ROOT" ]; then
  RBENV_ROOT="${HOME}/.rbenv"
fi

DEFINITION="$1"
case "$DEFINITION" in
"" | -* )
  { echo "usage: rbenv install VERSION"
    echo "       rbenv install /path/to/definition"
    echo
    echo "Available versions:"
    ruby-build --definitions | sed 's/^/  /'
    echo
  } >&2
  exit 1
  ;;
"-k" | "--keep" )
  [ -z "${RBENV_BUILD_ROOT}" ] && RBENV_BUILD_ROOT="${RBENV_ROOT}/sources"
  RUBY_BUILD_OPTIONS="${RUBY_BUILD_OPTIONS} -k"
  ;;
esac

VERSION_NAME="${DEFINITION##*/}"
PREFIX="${RBENV_ROOT}/versions/${VERSION_NAME}"

# If RBENV_BUILD_ROOT is set, then always pass keep options to ruby-build
if [ -n "${RBENV_BUILD_ROOT}" ]; then
  export RUBY_BUILD_BUILD_PATH="${RBENV_BUILD_ROOT}/${VERSION_NAME}"
  RUBY_BUILD_OPTIONS="${RUBY_BUILD_OPTIONS} -k"
fi

ruby-build "$DEFINITION" "$PREFIX" "$RUBY_BUILD_OPTIONS"
rbenv rehash
