#!/usr/bin/env bash
#
# **tools/build_venv.sh** - Build a Python Virtual Envirnment
#
# build_venv.sh venv-path [package [...]]
#
# Installs basic common prereq packages that require compilation
# to allow quick copying of resulting venv as a baseline
#
# Assumes:
# - a useful pip is installed
# - virtualenv will be installed by pip


VENV_DEST=${1:-.venv}
shift

MORE_PACKAGES="$@"

# If ``TOP_DIR`` is set we're being sourced rather than running stand-alone
# or in a sub-shell
if [[ -z "$TOP_DIR" ]]; then

    set -o errexit
    set -o nounset

    # Keep track of the DevStack directory
    TOP_DIR=$(cd $(dirname "$0")/.. && pwd)
    FILES=$TOP_DIR/files

    # Import common functions
    source $TOP_DIR/functions

    GetDistro

    source $TOP_DIR/stackrc

fi

# Build new venv
virtualenv $VENV_DEST

# Install modern pip
PIP_VIRTUAL_ENV=$VENV_DEST pip_install -U pip

# Install additional packages
PIP_VIRTUAL_ENV=$VENV_DEST pip_install ${MORE_PACKAGES}