diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 60885843..22e1da02 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -61,6 +61,7 @@ function main() { ;; "print") init_dirs + warn_path print_env print_completion print_shell_function @@ -132,6 +133,13 @@ function print_path() { esac } +function warn_path() { + if ! perl -ls0x3A -e 'while (<>) { chomp; ($_ eq $d) && exit 0; } exit 1' -- -d="${PYENV_ROOT}/shims" <<<"$PATH" ; then + echo 'echo '\''WARNING: `pyenv init -` no longer sets PATH.'\' + echo 'echo '\''Run `pyenv init` to see the necessary changes to make to your configuration.'\' + fi +} + function print_env() { case "$shell" in fish ) diff --git a/test/init.bats b/test/init.bats index bcb937c1..121c3b62 100755 --- a/test/init.bats +++ b/test/init.bats @@ -90,6 +90,13 @@ OUT assert_line 0 "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" } +@test "prints a warning if shims not in PATH" { + export PATH="$(perl -0x3A -ls -e 'while (<>) { chomp; ($_ ne $d) && print; }' -- -d="${PYENV_ROOT}/shims" <<<"$PATH")" + run pyenv-init - + assert_success + assert_line 0 'echo '\''WARNING: `pyenv init -` no longer sets PATH.'\' +} + @test "outputs sh-compatible syntax" { run pyenv-init - bash assert_success