#!/usr/bin/env bash # Summary: Configure the shell environment for pyenv-virtualenv # Usage: eval "$(pyenv virtualenv-init - [])" # # Automatically activates a Python virtualenv environment based on current # pyenv version. # set -e [ -n "$PYENV_DEBUG" ] && set -x print="" for args in "$@" do if [ "$args" = "-" ]; then print=1 shift fi done shell="$1" if [ -z "$shell" ]; then shell="$(ps c -p "$PPID" -o 'ucomm=' 2>/dev/null || true)" shell="${shell##-}" shell="${shell%% *}" shell="$(basename "${shell:-$SHELL}")" fi 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-virtualenv automatically by adding" echo "# the following to ${profile}:" echo case "$shell" in fish ) echo 'status --is-interactive; and . (pyenv virtualenv-init -|psub)' ;; * ) echo 'eval "$(pyenv virtualenv-init -)"' ;; esac echo } >&2 exit 1 fi case "$shell" in bash ) cat </dev/null || true fi }; if ! [[ "\$PROMPT_COMMAND" =~ _pyenv_virtualenv_hook ]]; then PROMPT_COMMAND="_pyenv_virtualenv_hook;\$PROMPT_COMMAND"; fi EOS ;; fish ) cat </dev/null); or true end end EOS ;; zsh ) cat </dev/null || true fi } typeset -a precmd_functions if [[ -z \$precmd_functions[(r)_pyenv_virtualenv_hook] ]]; then precmd_functions+=_pyenv_virtualenv_hook; fi EOS ;; * ) # FIXME: what should i do here?? ;; esac