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
## Installation
In your `.zshrc` file, add `pipenv` to the plugins section
```
@ -8,7 +9,9 @@ plugins=(... pipenv ...)
```
## Features
This plugin provides some features to simplify the use of Pipenv while working on ZSH.
- Adds completion for pipenv
- Auto activates and deactivates pipenv shell
- 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`
- `pvenv` is aliased to `pipenv --venv`
- `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" &|
# Automatic pipenv shell activation/deactivation
_togglePipenvShell() {
# deactivate shell if Pipfile doesn't exist and not in a subdir
if [[ ! -f "$PWD/Pipfile" ]]; then
if [[ "$PIPENV_ACTIVE" == 1 ]]; then
if [[ "$PWD" != "$pipfile_dir"* ]]; then
exit
if zstyle -T ':omz:plugins:pipenv' auto-shell; then
# Automatic pipenv shell activation/deactivation
_togglePipenvShell() {
# deactivate shell if Pipfile doesn't exist and not in a subdir
if [[ ! -f "$PWD/Pipfile" ]]; then
if [[ "$PIPENV_ACTIVE" == 1 ]]; then
if [[ "$PWD" != "$pipfile_dir"* ]]; then
exit
fi
fi
fi
fi
# activate the shell if Pipfile exists
if [[ "$PIPENV_ACTIVE" != 1 ]]; then
if [[ -f "$PWD/Pipfile" ]]; then
export pipfile_dir="$PWD"
pipenv shell
# activate the shell if Pipfile exists
if [[ "$PIPENV_ACTIVE" != 1 ]]; then
if [[ -f "$PWD/Pipfile" ]]; then
export pipfile_dir="$PWD"
pipenv shell
fi
fi
fi
}
autoload -U add-zsh-hook
add-zsh-hook chpwd _togglePipenvShell
_togglePipenvShell
}
autoload -U add-zsh-hook
add-zsh-hook chpwd _togglePipenvShell
_togglePipenvShell
fi
# Aliases
alias pch="pipenv check"