|  | #!/bin/bash | 
|  | # | 
|  | # lib/stack | 
|  | # | 
|  | # These functions are code snippets pulled out of stack.sh for easier | 
|  | # re-use by Grenade.  They can assume the same environment is available | 
|  | # as in the lower part of stack.sh, namely a valid stackrc has been sourced | 
|  | # as well as all of the lib/* files for the services have been sourced. | 
|  | # | 
|  | # For clarity, all functions declared here that came from ``stack.sh`` | 
|  | # shall be named with the prefix ``stack_``. | 
|  |  | 
|  |  | 
|  | # Generic service install handles venv creation if confgured for service | 
|  | # stack_install_service service | 
|  | function stack_install_service { | 
|  | local service=$1 | 
|  | if type install_${service} >/dev/null 2>&1; then | 
|  | if [[ -n ${PROJECT_VENV[$service]:-} ]]; then | 
|  | rm -rf ${PROJECT_VENV[$service]} | 
|  | source $TOP_DIR/tools/build_venv.sh ${PROJECT_VENV[$service]} | 
|  | export PIP_VIRTUAL_ENV=${PROJECT_VENV[$service]:-} | 
|  | fi | 
|  | install_${service} | 
|  | if [[ -n ${PROJECT_VENV[$service]:-} ]]; then | 
|  | unset PIP_VIRTUAL_ENV | 
|  | fi | 
|  | fi | 
|  | } |