Make sure that jjb-cleanup.sh allows unbound vars
[releng/global-jjb.git] / shell / lftools-install.sh
index d7a7eb3..a6792ed 100644 (file)
 ##############################################################################
 echo "---> lftools-install.sh"
 
+# Script to install lftools via a version passed in via lf-infra-parameters
+#
+# Required parameters:
+#
+#     LFTOOLS_VERSION: Passed in via lf-infra-parameters configuration. Can be
+#                      set to a strict version number like '1.2.3' or using
+#                      PEP-440 definitions.
+#
+#                      Examples:
+#                          <1.0.0
+#                          >=1.0.0,<2.0.0
+#
 # By default a released version of lftools should always be used.
 # The purpose of the 2 variables below is so that lftools devs can test
 # unreleased versions of lftools. There are 2 methods to install a dev version
@@ -38,7 +50,7 @@ set -e -o pipefail
 virtualenv --quiet "/tmp/v/lftools"
 # shellcheck source=/tmp/v/lftools/bin/activate disable=SC1091
 source "/tmp/v/lftools/bin/activate"
-pip install --quiet --upgrade pip
+pip install --quiet --upgrade "pip==9.0.3" setuptools
 
 case $LFTOOLS_MODE in
     gerrit)
@@ -56,10 +68,16 @@ case $LFTOOLS_MODE in
         ;;
 
     release)
-        pip install --quiet --upgrade "lftools<1.0.0"
+        if [[ $LFTOOLS_VERSION =~ ^[0-9] ]]; then
+            LFTOOLS_VERSION="==$LFTOOLS_VERSION"
+        fi
+
+        pip install --quiet --upgrade "lftools${LFTOOLS_VERSION}"
         ;;
 esac
 
+lftools --version
+
 # pipdeptree prints out a lot of information because lftools pulls in many
 # dependencies. Let's only print it if we want to debug.
 # echo "----> Pip Dependency Tree"