|  | # 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: | 
|  | # | 
|  | # unfubar_setuptools | 
|  | # install_infra | 
|  |  | 
|  | # Save trace setting | 
|  | XTRACE=$(set +o | grep xtrace) | 
|  | set +o xtrace | 
|  |  | 
|  |  | 
|  | # Defaults | 
|  | # -------- | 
|  | PBR_DIR=$DEST/pbr | 
|  | REQUIREMENTS_DIR=$DEST/requirements | 
|  |  | 
|  | # Entry Points | 
|  | # ------------ | 
|  |  | 
|  | # unfubar_setuptools() - Unbreak the giant mess that is the current state of setuptools | 
|  | function unfubar_setuptools() { | 
|  | # this is a giant game of who's on first, but it does consistently work | 
|  | # there is hope that upstream python packaging fixes this in the future | 
|  | echo_summary "Unbreaking setuptools" | 
|  | pip_install -U setuptools | 
|  | pip_install -U pip | 
|  | uninstall_package python-setuptools | 
|  | pip_install -U setuptools | 
|  | pip_install -U pip | 
|  | } | 
|  |  | 
|  |  | 
|  | # install_infra() - Collect source and prepare | 
|  | function install_infra() { | 
|  | # bring down global requirements | 
|  | git_clone $REQUIREMENTS_REPO $REQUIREMENTS_DIR $REQUIREMENTS_BRANCH | 
|  |  | 
|  | # Install pbr | 
|  | git_clone $PBR_REPO $PBR_DIR $PBR_BRANCH | 
|  | setup_develop $PBR_DIR | 
|  | } | 
|  |  | 
|  | # Restore xtrace | 
|  | $XTRACE | 
|  |  | 
|  | # Local variables: | 
|  | # mode: shell-script | 
|  | # End: |