#!/usr/bin/env bash # Summary: Configure the shell environment for pyenv # Usage: eval "$(pyenv init - [--no-rehash] [])" set -e [ -n "$PYENV_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="$(basename "$SHELL")" fi resolve_link() { $(type -p greadlink readlink | head -1) $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 pyenv automatically by adding" echo "# the following to ${profile}:" echo echo 'eval "$(pyenv init -)"' echo } >&2 exit 1 fi mkdir -p "${PYENV_ROOT}/"{shims,versions} case "$shell" in fish ) echo 'setenv PATH "'${PYENV_ROOT}'/shims"' '$PATH' ';' ;; * ) echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' ;; esac case "$shell" in bash | zsh ) echo "source \"$root/completions/pyenv.${shell}\"" ;; fish ) echo ". \"$root/completions/pyenv.${shell}\";" ;; esac if [ -z "$no_rehash" ]; then echo 'pyenv rehash 2>/dev/null' fi case "$shell" in fish ) commands=(`pyenv-commands --fish`) cat <