#!/usr/bin/env bash # Summary: Configure the shell environment for rbenv # Usage: eval "$(rbenv init - [--no-rehash] [])" set -e [ -n "$RBENV_DEBUG" ] && set -x print="" no_rehash="" for args in "$@" do if [ "$args" = "-" ]; then print=1 shift fi if [ "$args" = "--no-rehash" ]; then no_rehash=1 shift fi done shell="$1" if [ -z "$shell" ]; then shell="$(ps c -p $(ps -p $$ -o 'ppid=' 2>/dev/null) -o 'comm=' 2>/dev/null || true)" shell="${shell##-}" shell="$(basename "${shell:-$SHELL}")" fi READLINK=$(type -p greadlink readlink | head -1) if [ -z "$READLINK" ]; then echo "rbenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 fi resolve_link() { $READLINK "$1" } abs_dirname() { local cwd="$(pwd)" local path="$1" while [ -n "$path" ]; do cd "${path%/*}" local name="${path##*/}" path="$(resolve_link "$name" || true)" done pwd cd "$cwd" } root="$(abs_dirname "$0")/.." if [ -z "$print" ]; then case "$shell" in bash ) profile='~/.bash_profile' ;; zsh ) profile='~/.zshrc' ;; ksh ) profile='~/.profile' ;; fish ) profile='~/.config/fish/config.fish' ;; * ) profile='your profile' ;; esac { echo "# Load rbenv automatically by adding" echo "# the following to ${profile}:" echo case "$shell" in fish ) echo 'status --is-interactive; and . (rbenv init -|psub)' ;; * ) echo 'eval "$(rbenv init -)"' ;; esac echo } >&2 exit 1 fi mkdir -p "${RBENV_ROOT}/"{shims,versions} if [[ ":${PATH}:" != *:"${RBENV_ROOT}/shims":* ]]; then case "$shell" in fish ) echo "setenv PATH '${RBENV_ROOT}/shims' \$PATH" ;; * ) echo 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"' ;; esac fi case "$shell" in fish ) echo "setenv RBENV_SHELL $shell" ;; * ) echo "export RBENV_SHELL=$shell" ;; esac completion="${root}/completions/rbenv.${shell}" if [ -r "$completion" ]; then case "$shell" in fish ) echo ". '$completion'" ;; * ) echo "source '$completion'" ;; esac fi if [ -z "$no_rehash" ]; then echo 'rbenv rehash 2>/dev/null' fi commands=(`rbenv-commands --sh`) case "$shell" in fish ) cat <