#!/usr/bin/env bash -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 } DEFAULT_PATH="${HOME}/.rbenv/default" find_default_version_file() { 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 system > "$DEFAULT_PATH" RBENV_VERSION=system fi fi if [ "$RBENV_VERSION" = "system" ]; then echo "$RBENV_VERSION" exit 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