Просмотр исходного кода

Fix $PWD changes when executing Python

Specifically, this does not play well with PWD=/proc/self/cwd
pull/1036/head
Zach Riggle 8 лет назад
Родитель
Сommit
19e2b9588a
4 измененных файлов: 18 добавлений и 13 удалений
  1. +9
    -6
      libexec/pyenv
  2. +3
    -3
      libexec/pyenv-hooks
  3. +3
    -2
      libexec/pyenv-versions
  4. +3
    -2
      plugins/python-build/bin/python-build

+ 9
- 6
libexec/pyenv Просмотреть файл

@ -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

+ 3
- 3
libexec/pyenv-hooks Просмотреть файл

@ -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

+ 3
- 2
libexec/pyenv-versions Просмотреть файл

@ -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

+ 3
- 2
plugins/python-build/bin/python-build Просмотреть файл

@ -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() {

Загрузка…
Отмена
Сохранить