mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-14 14:33:52 -05:00
Use realpath of scripts to determine relative locations (#308)
Just using paths relative to ${BASH_SOURCE} to access `libexec`
fails if the scripts are symlinked to a location,
such as when installed with Homebrew,
since the `libexec` directory is not linked into `brew --prefix`.
Implement a simple version of `realpath`
and run `${BASH_SOURCE}` through it.
This gets the actual installation directory
relative to which `libexec` is located.
Co-authored-by: Andrew Christianson <achristianson@edmunds.com>
This commit is contained in:
committed by
GitHub
parent
633711a0bc
commit
c4de2555b7
@@ -6,7 +6,21 @@
|
||||
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
. "${BASH_SOURCE%/*}"/../libexec/pyenv-virtualenv-realpath
|
||||
if [ -L "${BASH_SOURCE}" ]; then
|
||||
READLINK=$(type -p greadlink readlink | head -1)
|
||||
if [ -z "$READLINK" ]; then
|
||||
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
||||
exit 1
|
||||
fi
|
||||
resolve_link() {
|
||||
$READLINK -f "$1"
|
||||
}
|
||||
script_path=$(resolve_link ${BASH_SOURCE})
|
||||
else
|
||||
script_path=${BASH_SOURCE}
|
||||
fi
|
||||
|
||||
. ${script_path%/*}/../libexec/pyenv-virtualenv-realpath
|
||||
|
||||
if [ -z "$PYENV_ROOT" ]; then
|
||||
PYENV_ROOT="${HOME}/.pyenv"
|
||||
|
||||
@@ -7,7 +7,21 @@
|
||||
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
. "${BASH_SOURCE%/*}"/../libexec/pyenv-virtualenv-realpath
|
||||
if [ -L "${BASH_SOURCE}" ]; then
|
||||
READLINK=$(type -p greadlink readlink | head -1)
|
||||
if [ -z "$READLINK" ]; then
|
||||
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
||||
exit 1
|
||||
fi
|
||||
resolve_link() {
|
||||
$READLINK -f "$1"
|
||||
}
|
||||
script_path=$(resolve_link ${BASH_SOURCE})
|
||||
else
|
||||
script_path=${BASH_SOURCE}
|
||||
fi
|
||||
|
||||
. ${script_path%/*}/../libexec/pyenv-virtualenv-realpath
|
||||
|
||||
if [ -z "$PYENV_ROOT" ]; then
|
||||
PYENV_ROOT="${HOME}/.pyenv"
|
||||
|
||||
Reference in New Issue
Block a user