mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-14 20:39:55 -05:00
Fix realpath
fallback in rbenv hooks
The symlinks weren't correctly resolved if they were pointing to a single path component, such as `ln -s foo bar`.
This commit is contained in:
parent
6e02b944f7
commit
7026e529c7
2 changed files with 12 additions and 5 deletions
|
@ -35,16 +35,17 @@ resolve_link() {
|
|||
}
|
||||
|
||||
realpath() {
|
||||
local cwd="$(pwd)"
|
||||
local cwd="$PWD"
|
||||
local path="$1"
|
||||
local name
|
||||
|
||||
while [ -n "$path" ]; do
|
||||
cd "${path%/*}"
|
||||
local name="${path##*/}"
|
||||
name="${path##*/}"
|
||||
[ "$name" = "$path" ] || cd "${path%/*}"
|
||||
path="$(resolve_link "$name" || true)"
|
||||
done
|
||||
|
||||
echo "$(pwd)/$name"
|
||||
echo "${PWD}/$name"
|
||||
cd "$cwd"
|
||||
}
|
||||
fi
|
||||
|
|
|
@ -59,7 +59,13 @@ OUT
|
|||
mkdir -p "$HOME"
|
||||
touch "${HOME}/hola.bash"
|
||||
ln -s "../../home/hola.bash" "${path}/exec/hello.bash"
|
||||
touch "${path}/exec/bright.sh"
|
||||
ln -s "bright.sh" "${path}/exec/world.bash"
|
||||
|
||||
RBENV_HOOK_PATH="$path" run rbenv-hooks exec
|
||||
assert_success "${HOME}/hola.bash"
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
${HOME}/hola.bash
|
||||
${RBENV_TEST_DIR}/rbenv.d/exec/bright.sh
|
||||
OUT
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue