mirror of
https://github.com/pyenv/pyenv.git
synced 2024-12-22 12:13:34 +00:00
Fix $PWD changes when executing Python
Specifically, this does not play well with PWD=/proc/self/cwd
This commit is contained in:
parent
eef042ad89
commit
19e2b9588a
4 changed files with 18 additions and 13 deletions
|
@ -36,9 +36,10 @@ else
|
|||
}
|
||||
|
||||
abs_dirname() {
|
||||
local cwd="$PWD"
|
||||
local path="$1"
|
||||
|
||||
# Use a subshell to avoid changing the current path
|
||||
(
|
||||
while [ -n "$path" ]; do
|
||||
cd "${path%/*}"
|
||||
local name="${path##*/}"
|
||||
|
@ -46,7 +47,7 @@ else
|
|||
done
|
||||
|
||||
pwd
|
||||
cd "$cwd"
|
||||
)
|
||||
}
|
||||
fi
|
||||
|
||||
|
@ -72,11 +73,13 @@ fi
|
|||
|
||||
if [ -z "${PYENV_DIR}" ]; then
|
||||
PYENV_DIR="$PWD"
|
||||
else
|
||||
cd "$PYENV_DIR" 2>/dev/null || abort "cannot change working directory to \`$PYENV_DIR'"
|
||||
PYENV_DIR="$PWD"
|
||||
cd "$OLDPWD"
|
||||
fi
|
||||
|
||||
if [ ! -d "$PYENV_DIR" ] || [ ! -e "$PYENV_DIR" ]; then
|
||||
abort "cannot change working directory to \`$PYENV_DIR'"
|
||||
fi
|
||||
|
||||
PYENV_DIR=$(cd "$PYENV_DIR" && echo "$PWD")
|
||||
export PYENV_DIR
|
||||
|
||||
|
||||
|
|
|
@ -37,10 +37,10 @@ resolve_link() {
|
|||
}
|
||||
|
||||
realpath() {
|
||||
local cwd="$PWD"
|
||||
local path="$1"
|
||||
local name
|
||||
|
||||
# Use a subshell to avoid changing the current path
|
||||
(
|
||||
while [ -n "$path" ]; do
|
||||
name="${path##*/}"
|
||||
[ "$name" = "$path" ] || cd "${path%/*}"
|
||||
|
@ -48,7 +48,7 @@ realpath() {
|
|||
done
|
||||
|
||||
echo "${PWD}/$name"
|
||||
cd "$cwd"
|
||||
)
|
||||
}
|
||||
fi
|
||||
|
||||
|
|
|
@ -44,10 +44,11 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th
|
|||
}
|
||||
|
||||
realpath() {
|
||||
local cwd="$PWD"
|
||||
local path="$1"
|
||||
local name
|
||||
|
||||
# Use a subshell to avoid changing the current path
|
||||
(
|
||||
while [ -n "$path" ]; do
|
||||
name="${path##*/}"
|
||||
[ "$name" = "$path" ] || cd "${path%/*}"
|
||||
|
@ -55,7 +56,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th
|
|||
done
|
||||
|
||||
echo "${PWD}/$name"
|
||||
cd "$cwd"
|
||||
)
|
||||
}
|
||||
fi
|
||||
|
||||
|
|
|
@ -60,9 +60,10 @@ resolve_link() {
|
|||
}
|
||||
|
||||
abs_dirname() {
|
||||
local cwd="$(pwd)"
|
||||
local path="$1"
|
||||
|
||||
# Use a subshell to avoid modifying the current path
|
||||
(
|
||||
while [ -n "$path" ]; do
|
||||
cd "${path%/*}"
|
||||
local name="${path##*/}"
|
||||
|
@ -70,7 +71,7 @@ abs_dirname() {
|
|||
done
|
||||
|
||||
pwd
|
||||
cd "$cwd"
|
||||
)
|
||||
}
|
||||
|
||||
capitalize() {
|
||||
|
|
Loading…
Reference in a new issue