|  | #!/bin/bash | 
|  | # | 
|  | # lib/infra | 
|  | # | 
|  | # Functions to install infrastructure projects needed by other projects | 
|  | # early in the cycle. We need this so we can do things like gate on | 
|  | # requirements as a global list | 
|  |  | 
|  | # Dependencies: | 
|  | # | 
|  | # - ``functions`` file | 
|  |  | 
|  | # ``stack.sh`` calls the entry points in this order: | 
|  | # | 
|  | # - install_infra | 
|  |  | 
|  | # Save trace setting | 
|  | _XTRACE_INFRA=$(set +o | grep xtrace) | 
|  | set +o xtrace | 
|  |  | 
|  |  | 
|  | # Defaults | 
|  | # -------- | 
|  | GITDIR["pbr"]=$DEST/pbr | 
|  |  | 
|  | # Entry Points | 
|  | # ------------ | 
|  |  | 
|  | # install_infra() - Collect source and prepare | 
|  | function install_infra { | 
|  | local PIP_VIRTUAL_ENV="$REQUIREMENTS_DIR/.venv" | 
|  | [ ! -d $PIP_VIRTUAL_ENV ] && virtualenv $PIP_VIRTUAL_ENV | 
|  | # We don't care about testing git pbr in the requirements venv. | 
|  | PIP_VIRTUAL_ENV=$PIP_VIRTUAL_ENV pip_install -U pbr | 
|  | PIP_VIRTUAL_ENV=$PIP_VIRTUAL_ENV pip_install $REQUIREMENTS_DIR | 
|  |  | 
|  | # Unset the PIP_VIRTUAL_ENV so that PBR does not end up trapped | 
|  | # down the VENV well | 
|  | unset PIP_VIRTUAL_ENV | 
|  |  | 
|  | # Install pbr | 
|  | if use_library_from_git "pbr"; then | 
|  | git_clone_by_name "pbr" | 
|  | setup_dev_lib "pbr" | 
|  | else | 
|  | # Always upgrade pbr to latest version as we may have pulled it | 
|  | # in via system packages. | 
|  | pip_install "-U" "pbr" | 
|  | fi | 
|  | } | 
|  |  | 
|  | # Restore xtrace | 
|  | $_XTRACE_INFRA | 
|  |  | 
|  | # Tell emacs to use shell-script-mode | 
|  | ## Local variables: | 
|  | ## mode: shell-script | 
|  | ## End: |