pyenv/pyenv.d/exec/pip-rehash/pip
Lars Fronius bbd8f2c01e Fixes pip-rehash to rehash if pip was called with a flag
`pip -v install foobar` or `pip -q install foobar` did not trigger a rehash before. Now it should have the same behaviour as `pip install foobar`.
2017-05-09 12:43:51 +02:00

35 lines
788 B
Bash
Executable file

#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Remove pyenv-pip-rehash/libexec from PATH to avoid infinite loops in `pyenv-which` (yyuu/pyenv#146)
_PATH=":${PATH}:"
_HERE="$(dirname "${BASH_SOURCE[0]}")" # remove this from PATH
_PATH="${_PATH//:${_HERE}:/:}"
_PATH="${_PATH#:}"
_PATH="${_PATH%:}"
PATH="${_PATH}"
PYENV_COMMAND_PATH="$(pyenv-which "${PYENV_REHASH_REAL_COMMAND}")"
PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}"
export PATH="${PYENV_BIN_PATH}:${PATH}"
STATUS=0
"$PYENV_COMMAND_PATH" "$@" || STATUS="$?"
# Run `pyenv-rehash` after a successful installation.
if [ "$STATUS" == "0" ]; then
for piparg in "$@"; do
case ${piparg} in
"install" | "uninstall" ) REHASH=0;;
esac
done
fi
if [ "$REHASH" == "0" ]; then
pyenv-rehash
fi
exit "$STATUS"