Skip to content
Unverified Commit 28d0175d authored by Alecto Irene Perez's avatar Alecto Irene Perez Committed by GitHub
Browse files

Fix shell activation for zsh (#5795)



# Fix Shell Activation For ZSH

This PR resolves an issue wherein poetry will clear the `PATH` on zsh.
The activation script contains a number of if statements of the
following form:

```bash
    # ...
    if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
        PATH="$_OLD_VIRTUAL_PATH"
        export PATH
        unset _OLD_VIRTUAL_PATH
    fi
```
These constructs are valid in bash, although zsh fails to negate the
conditional except when placed in emulation mode:

```zsh
# Causes PATH to be cleared, leading to other issues
. /home/alecto/.cache/pypoetry/virtualenvs/poetry-E-aAiPjf-py3.10/bin/activate
```

When bash is used as an emulator to source the script, it functions
correctly:

```zsh
# Functions correctly
emulate bash -c '. /home/alecto/.cache/pypoetry/virtualenvs/poetry-E-aAiPjf-py3.10/bin/activate'
```

It's important to note that this doesn't place the *entire* shell into
bash emulation mode; only the activate script is sourced as bash.

Any guidance on what tests should be added for this PR would be
appreciated.

Co-authored-by: default avatarAlecto Irene Perez <alecto.perez@voladynamics.com>
Co-authored-by: default avatarBartosz Sokorski <b.sokorski@gmail.com>
parent 47255c44
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment