#!/usr/bin/env bash # Summary: Configure the shell environment for pyenv # Usage: eval "$(pyenv init - [--no-rehash] [])" set -e [ -n "$PYENV_DEBUG" ] && set -x # Provide pyenv completions if [ "$1" = "--complete" ]; then echo - echo --no-rehash echo bash echo fish echo ksh echo zsh exit fi 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 -p "$PPID" -o 'args=' 2>/dev/null || true)" shell="${shell%% *}" shell="${shell##-}" shell="${shell:-$SHELL}" shell="${shell##*/}" fi root="${0%/*}/.." if [ -z "$print" ]; then case "$shell" in bash ) if [ -f "${HOME}/.bashrc" ] && [ ! -f "${HOME}/.bash_profile" ]; then profile='~/.bashrc' else profile='~/.bash_profile' fi ;; zsh ) profile='~/.zshrc' ;; ksh ) profile='~/.profile' ;; fish ) profile='~/.config/fish/config.fish' ;; * ) profile='your profile' ;; esac { echo "# Load pyenv automatically by appending" echo "# the following to ${profile}:" echo case "$shell" in fish ) echo 'status --is-interactive; and . (pyenv init -|psub)' ;; * ) echo 'eval "$(pyenv init -)"' ;; esac echo } >&2 exit 1 fi mkdir -p "${PYENV_ROOT}/"{shims,versions} case "$shell" in fish ) echo "setenv PATH '${PYENV_ROOT}/shims' \$PATH" echo "setenv PYENV_SHELL $shell" ;; * ) echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' echo "export PYENV_SHELL=$shell" ;; esac completion="${root}/completions/pyenv.${shell}" if [ -r "$completion" ]; then case "$shell" in fish ) echo ". '$completion'" ;; * ) echo "source '$completion'" ;; esac fi if [ -z "$no_rehash" ]; then echo 'command pyenv rehash 2>/dev/null' fi commands=(`pyenv-commands --sh`) case "$shell" in fish ) cat <