feat(python): add recursive parent directory search for auto_vrun

Add PYTHON_AUTO_VRUN_RECURSIVE option to search parent directories
for virtual environments, useful for monorepos where venv is at
project root but you work in subdirectories.
This commit is contained in:
kang 2026-01-18 20:15:31 +08:00
commit d7dd980970
No known key found for this signature in database
GPG key ID: 716B162E703DA80C
2 changed files with 15 additions and 1 deletions

View file

@ -113,8 +113,21 @@ if [[ "$PYTHON_AUTO_VRUN" == "true" ]]; then
# make sure we're not in a venv already
(( $+functions[deactivate] )) && deactivate > /dev/null 2>&1
source $file > /dev/null 2>&1
break
return
done
# Search parent directories if recursive mode is enabled
if [[ "$PYTHON_AUTO_VRUN_RECURSIVE" == "true" ]]; then
local search_dir="$PWD:h"
while [[ "$search_dir" != "/" && "$search_dir" != "." ]]; do
for file in "${search_dir}/"${^PYTHON_VENV_NAMES[@]}"/bin/activate"(N.); do
(( $+functions[deactivate] )) && deactivate > /dev/null 2>&1
source $file > /dev/null 2>&1
return
done
search_dir="${search_dir:h}"
done
fi
fi
}
add-zsh-hook chpwd auto_vrun