|
|
|
|
@ -1,12 +1,39 @@ |
|
|
|
|
# Activates autoenv or reports its failure |
|
|
|
|
# Initialization: activate autoenv or report its absence |
|
|
|
|
() { |
|
|
|
|
local d autoenv_dir install_locations |
|
|
|
|
if ! type autoenv_init >/dev/null; then |
|
|
|
|
for d (~/.autoenv ~/.local/bin /usr/local/opt/autoenv /usr/local/bin); do |
|
|
|
|
# Check if activate.sh is in $PATH |
|
|
|
|
if (( $+commands[activate.sh] )); then |
|
|
|
|
autoenv_dir="${commands[activate.sh]:h}" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Locate autoenv installation |
|
|
|
|
if [[ -z $autoenv_dir ]]; then |
|
|
|
|
install_locations=( |
|
|
|
|
~/.autoenv |
|
|
|
|
~/.local/bin |
|
|
|
|
/usr/local/opt/autoenv |
|
|
|
|
/usr/local/bin |
|
|
|
|
/usr/share/autoenv-git |
|
|
|
|
~/Library/Python/bin |
|
|
|
|
) |
|
|
|
|
for d ( $install_locations ); do |
|
|
|
|
if [[ -e $d/activate.sh ]]; then |
|
|
|
|
autoenv_dir=$d |
|
|
|
|
break |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Look for Homebrew path as a last resort |
|
|
|
|
if [[ -z "$autoenv_dir" ]] && (( $+commands[brew] )); then |
|
|
|
|
d=$(brew --prefix)/opt/autoenv |
|
|
|
|
if [[ -e $d/activate.sh ]]; then |
|
|
|
|
autoenv_dir=$d |
|
|
|
|
break |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Complain if autoenv is not installed |
|
|
|
|
if [[ -z $autoenv_dir ]]; then |
|
|
|
|
cat <<END >&2 |
|
|
|
|
-------- AUTOENV --------- |
|
|
|
|
@ -17,6 +44,7 @@ In the meantime the autoenv plugin is DISABLED. |
|
|
|
|
END |
|
|
|
|
return 1 |
|
|
|
|
fi |
|
|
|
|
# Load autoenv |
|
|
|
|
source $autoenv_dir/activate.sh |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
@ -27,17 +55,17 @@ fi |
|
|
|
|
# It only performs an action if the requested virtualenv is not the current one. |
|
|
|
|
|
|
|
|
|
use_env() { |
|
|
|
|
typeset venv |
|
|
|
|
venv="$1" |
|
|
|
|
if [[ "${VIRTUAL_ENV:t}" != "$venv" ]]; then |
|
|
|
|
if workon | grep -q "$venv"; then |
|
|
|
|
workon "$venv" |
|
|
|
|
else |
|
|
|
|
echo -n "Create virtualenv $venv now? (Yn) " |
|
|
|
|
read answer |
|
|
|
|
if [[ "$answer" == "Y" ]]; then |
|
|
|
|
mkvirtualenv "$venv" |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
local venv |
|
|
|
|
venv="$1" |
|
|
|
|
if [[ "${VIRTUAL_ENV:t}" != "$venv" ]]; then |
|
|
|
|
if workon | grep -q "$venv"; then |
|
|
|
|
workon "$venv" |
|
|
|
|
else |
|
|
|
|
echo -n "Create virtualenv $venv now? (Yn) " |
|
|
|
|
read answer |
|
|
|
|
if [[ "$answer" == "Y" ]]; then |
|
|
|
|
mkvirtualenv "$venv" |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|