|
@@ -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
|
|
|
}
|