#!/bin/bash

set -e

read_version_file() {
  egrep -m 1 '[^[:space:]]' "$1"
}

find_version_file() {
  local root="$(pwd)"
  while [ -n "$root" ]; do
    if [ -e "${root}/.rbenv-version" ]; then
      echo "${root}/.rbenv-version"
      return 0
    fi
    root="${root%/*}"
  done
  return 1
}

find_default_version_file() {
  local default_path="$HOME/.rbenv/default"
  if [ -e "$default_path" ]; then
    echo "$default_path"
    return 0
  fi
  return 1
}

if [ -z "$RBENV_VERSION" ]; then
  RBENV_VERSION_FILE="$(find_version_file || find_default_version_file || true)"

  if [ -n "$RBENV_VERSION_FILE" ]; then
    RBENV_VERSION="$(read_version_file "$RBENV_VERSION_FILE")"
  else
    echo "rbenv: no default version specified" >&2
    exit 1
  fi
fi

RBENV_VERSION_PATH="${HOME}/.rbenv/versions/${RBENV_VERSION}"

if [ -d "$RBENV_VERSION_PATH" ]; then
  echo "$RBENV_VERSION"
else
  echo "rbenv: version \`$RBENV_VERSION' is not installed" >&2
  exit 1
fi