diff --git a/libexec/rbenv-sh-shell b/libexec/rbenv-sh-shell index c44c74f5..dc4c3f92 100755 --- a/libexec/rbenv-sh-shell +++ b/libexec/rbenv-sh-shell @@ -48,6 +48,10 @@ if [ "$version" = "--unset" ]; then echo 'set -gu RBENV_VERSION_OLD "$RBENV_VERSION"' echo "set -e RBENV_VERSION" ;; + zsh ) + echo "typeset -g RBENV_VERSION_OLD=\"\${RBENV_VERSION-}\"" + echo "unset RBENV_VERSION" + ;; * ) echo 'RBENV_VERSION_OLD="${RBENV_VERSION-}"' echo "unset RBENV_VERSION" @@ -74,6 +78,24 @@ else echo "rbenv: RBENV_VERSION_OLD is not set" >&2 false end +EOS + ;; + zsh ) + cat <&2 + false +fi EOS ;; * ) @@ -106,6 +128,10 @@ if rbenv-prefix "$version" >/dev/null; then echo 'set -gu RBENV_VERSION_OLD "$RBENV_VERSION"' echo "set -gx RBENV_VERSION \"$version\"" ;; + zsh ) + echo "typeset -g RBENV_VERSION_OLD=\"\${RBENV_VERSION-}\"" + echo "export RBENV_VERSION=\"$version\"" + ;; * ) echo 'RBENV_VERSION_OLD="${RBENV_VERSION-}"' echo "export RBENV_VERSION=\"$version\"" diff --git a/test/shell.bats b/test/shell.bats index 38b0f426..1c409636 100644 --- a/test/shell.bats +++ b/test/shell.bats @@ -80,6 +80,16 @@ export RBENV_VERSION="1.2.3" OUT } +@test "shell change version (zsh)" { + mkdir -p "${RBENV_ROOT}/versions/1.2.3" + RBENV_SHELL=zsh run rbenv-sh-shell 1.2.3 + assert_success + assert_output <