feat(pipenv): add option to disable auto shell feature

Closes #11472
This commit is contained in:
Carlo Sala 2023-09-06 19:01:41 +02:00
parent 6a7aab47dd
commit 079dbff2c4
No known key found for this signature in database
GPG key ID: DA6FB450C1A4FE9A
2 changed files with 34 additions and 19 deletions

View file

@ -1,6 +1,7 @@
# Pipenv # Pipenv
## Installation ## Installation
In your `.zshrc` file, add `pipenv` to the plugins section In your `.zshrc` file, add `pipenv` to the plugins section
``` ```
@ -8,7 +9,9 @@ plugins=(... pipenv ...)
``` ```
## Features ## Features
This plugin provides some features to simplify the use of Pipenv while working on ZSH. This plugin provides some features to simplify the use of Pipenv while working on ZSH.
- Adds completion for pipenv - Adds completion for pipenv
- Auto activates and deactivates pipenv shell - Auto activates and deactivates pipenv shell
- Adds short aliases for common pipenv commands - Adds short aliases for common pipenv commands
@ -27,3 +30,13 @@ This plugin provides some features to simplify the use of Pipenv while working o
- `pwh` is aliased to `pipenv --where` - `pwh` is aliased to `pipenv --where`
- `pvenv` is aliased to `pipenv --venv` - `pvenv` is aliased to `pipenv --venv`
- `ppy` is aliased to `pipenv --py` - `ppy` is aliased to `pipenv --py`
## Configuration
### Shell activation
If you want to disable the shell activation and deactivation feature, add the following style to your `.zshrc` before sourcing `oh-my-zsh.sh`:
```zsh
zstyle ':omz:plugins:pipenv' auto-shell no
```

View file

@ -12,28 +12,30 @@ fi
_PIPENV_COMPLETE=zsh_source pipenv >| "$ZSH_CACHE_DIR/completions/_pipenv" &| _PIPENV_COMPLETE=zsh_source pipenv >| "$ZSH_CACHE_DIR/completions/_pipenv" &|
# Automatic pipenv shell activation/deactivation if zstyle -T ':omz:plugins:pipenv' auto-shell; then
_togglePipenvShell() { # Automatic pipenv shell activation/deactivation
# deactivate shell if Pipfile doesn't exist and not in a subdir _togglePipenvShell() {
if [[ ! -f "$PWD/Pipfile" ]]; then # deactivate shell if Pipfile doesn't exist and not in a subdir
if [[ "$PIPENV_ACTIVE" == 1 ]]; then if [[ ! -f "$PWD/Pipfile" ]]; then
if [[ "$PWD" != "$pipfile_dir"* ]]; then if [[ "$PIPENV_ACTIVE" == 1 ]]; then
exit if [[ "$PWD" != "$pipfile_dir"* ]]; then
exit
fi
fi fi
fi fi
fi
# activate the shell if Pipfile exists # activate the shell if Pipfile exists
if [[ "$PIPENV_ACTIVE" != 1 ]]; then if [[ "$PIPENV_ACTIVE" != 1 ]]; then
if [[ -f "$PWD/Pipfile" ]]; then if [[ -f "$PWD/Pipfile" ]]; then
export pipfile_dir="$PWD" export pipfile_dir="$PWD"
pipenv shell pipenv shell
fi
fi fi
fi }
} autoload -U add-zsh-hook
autoload -U add-zsh-hook add-zsh-hook chpwd _togglePipenvShell
add-zsh-hook chpwd _togglePipenvShell _togglePipenvShell
_togglePipenvShell fi
# Aliases # Aliases
alias pch="pipenv check" alias pch="pipenv check"