#!/usr/bin/env bash
#
# Summary: List all Python virtualenvs found in `$PYENV_ROOT/versions/*'.
#
# Usage: pyenv virtualenvs [--bare]
#

set -e
[ -n "$PYENV_DEBUG" ] && set -x

if [ -z "$PYENV_ROOT" ]; then
  PYENV_ROOT="${HOME}/.pyenv"
fi

unset BARE

if [ "$1" = "--bare" ]; then
  BARE=true
fi

print_version() {
  local version="$1"
  if [ -n "${BARE}" ]; then
    echo "${version}"
  else
    echo "${version} (created from $(pyenv-virtualenv-prefix "${version}"))"
  fi
}

virtualenv_version() {
  local version="$1"
  local prefix="$(pyenv-prefix "${version}")"
  [ -f "${prefix}/bin/activate" ] && "${prefix}/bin/python" -c 'import sys;sys.real_prefix' 1>/dev/null 2>&1
}

versions=($(pyenv-versions --bare))

for version in "${versions[@]}"; do
  if virtualenv_version "${version}"; then
    print_version "${version}"
  fi
done
