1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # Initialization: activate autoenv or report its absence
- () {
- local d autoenv_dir install_locations
- if ! type autoenv_init >/dev/null; then
- # 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
- fi
- fi
- # Complain if autoenv is not installed
- if [[ -z $autoenv_dir ]]; then
- cat <<END >&2
- -------- AUTOENV ---------
- Could not locate autoenv installation.
- Please check if autoenv is correctly installed.
- In the meantime the autoenv plugin is DISABLED.
- --------------------------
- END
- return 1
- fi
- # Load autoenv
- source $autoenv_dir/activate.sh
- fi
- }
- [[ $? != 0 ]] && return $?
- # The use_env call below is a reusable command to activate/create a new Python
- # virtualenv, requiring only a single declarative line of code in your .env files.
- # It only performs an action if the requested virtualenv is not the current one.
- use_env() {
- 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
- }
|