#!/usr/bin/env bash
# Summary: Display prefix for a Python version
# Usage: pyenv prefix [<version>]
#
# Displays the directory where a Python version is installed. If no
# version is given, `pyenv prefix' displays the location of the
# currently selected version.

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

# Provide pyenv completions
if [ "$1" = "--complete" ]; then
  echo system
  exec pyenv-versions --bare
fi

if [ -n "$1" ]; then
  versions=($@)
  IFS=: PYENV_VERSION="${versions[*]}"
  export PYENV_VERSION
else
  IFS=: versions=($(pyenv-version-name))
fi

PYENV_PREFIX_PATHS=()
for version in "${versions[@]}"; do
  if [ "$version" = "system" ]; then
    PYTHON_PATH="$(pyenv-which python || true)"
    PYENV_PREFIX_PATH="${PYTHON_PATH%/*}"
  else
    PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
  fi
  if [ -d "$PYENV_PREFIX_PATH" ]; then
    PYENV_PREFIX_PATHS=("${PYENV_PREFIX_PATHS[@]}" "$PYENV_PREFIX_PATH")
  else
    echo "pyenv: version \`${version}' not installed" >&2
    exit 1
  fi
done

IFS=: echo "${PYENV_PREFIX_PATHS[*]}"
