Dean Troyer | 8c2ce6e | 2015-02-18 14:47:54 -0600 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | # |
| 3 | # **tools/build_venv.sh** - Build a Python Virtual Envirnment |
| 4 | # |
| 5 | # build_venv.sh venv-path [package [...]] |
| 6 | # |
Dean Troyer | dc97cb7 | 2015-03-28 08:20:50 -0500 | [diff] [blame] | 7 | # Installs basic common prereq packages that require compilation |
| 8 | # to allow quick copying of resulting venv as a baseline |
| 9 | # |
Dean Troyer | 8c2ce6e | 2015-02-18 14:47:54 -0600 | [diff] [blame] | 10 | # Assumes: |
| 11 | # - a useful pip is installed |
| 12 | # - virtualenv will be installed by pip |
Dean Troyer | 8c2ce6e | 2015-02-18 14:47:54 -0600 | [diff] [blame] | 13 | |
| 14 | |
| 15 | VENV_DEST=${1:-.venv} |
| 16 | shift |
| 17 | |
| 18 | MORE_PACKAGES="$@" |
| 19 | |
Dean Troyer | dc97cb7 | 2015-03-28 08:20:50 -0500 | [diff] [blame] | 20 | # If ``TOP_DIR`` is set we're being sourced rather than running stand-alone |
Dean Troyer | 8c2ce6e | 2015-02-18 14:47:54 -0600 | [diff] [blame] | 21 | # or in a sub-shell |
| 22 | if [[ -z "$TOP_DIR" ]]; then |
| 23 | |
| 24 | set -o errexit |
| 25 | set -o nounset |
| 26 | |
Dean Troyer | dc97cb7 | 2015-03-28 08:20:50 -0500 | [diff] [blame] | 27 | # Keep track of the DevStack directory |
Dean Troyer | 8c2ce6e | 2015-02-18 14:47:54 -0600 | [diff] [blame] | 28 | TOP_DIR=$(cd $(dirname "$0")/.. && pwd) |
| 29 | FILES=$TOP_DIR/files |
| 30 | |
| 31 | # Import common functions |
| 32 | source $TOP_DIR/functions |
| 33 | |
| 34 | GetDistro |
| 35 | |
| 36 | source $TOP_DIR/stackrc |
| 37 | |
Dean Troyer | 8c2ce6e | 2015-02-18 14:47:54 -0600 | [diff] [blame] | 38 | fi |
| 39 | |
Dean Troyer | 8c2ce6e | 2015-02-18 14:47:54 -0600 | [diff] [blame] | 40 | # Build new venv |
| 41 | virtualenv $VENV_DEST |
| 42 | |
| 43 | # Install modern pip |
Dean Troyer | 99c463d | 2015-02-19 13:05:15 -0600 | [diff] [blame] | 44 | PIP_VIRTUAL_ENV=$VENV_DEST pip_install -U pip |
Dean Troyer | 8c2ce6e | 2015-02-18 14:47:54 -0600 | [diff] [blame] | 45 | |
Dean Troyer | 99c463d | 2015-02-19 13:05:15 -0600 | [diff] [blame] | 46 | # Install additional packages |
| 47 | PIP_VIRTUAL_ENV=$VENV_DEST pip_install ${MORE_PACKAGES} |