devstack/tools/install_pip.sh
Attila Fazekas 46ea723868 install_pip script fails if pip was not installed
'set -o errexit' recently added to the pip installer script, which causes
the script fail when it does not able to find an already installed pip.

This change handles the situation when pip is not installed.

Change-Id: I18a42d13c4be6699db21ec5b6a095a88a199912d
2013-10-07 07:32:58 +02:00

96 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# **install_pip.sh**
# install_pip.sh [--pip-version <version>] [--use-get-pip] [--force]
#
# Update pip and friends to a known common version
# Assumptions:
# - update pip to $INSTALL_PIP_VERSION
set -o errexit
set -o xtrace
# Keep track of the current directory
TOOLS_DIR=$(cd $(dirname "$0") && pwd)
TOP_DIR=`cd $TOOLS_DIR/..; pwd`
# Change dir to top of devstack
cd $TOP_DIR
# Import common functions
source $TOP_DIR/functions
FILES=$TOP_DIR/files
# Handle arguments
INSTALL_PIP_VERSION=${INSTALL_PIP_VERSION:-"1.4.1"}
while [[ -n "$1" ]]; do
case $1 in
--force)
FORCE=1
;;
--pip-version)
INSTALL_PIP_VERSION="$2"
shift
;;
--use-get-pip)
USE_GET_PIP=1;
;;
esac
shift
done
PIP_GET_PIP_URL=https://raw.github.com/pypa/pip/master/contrib/get-pip.py
PIP_TAR_URL=https://pypi.python.org/packages/source/p/pip/pip-$INSTALL_PIP_VERSION.tar.gz
GetDistro
echo "Distro: $DISTRO"
function get_versions() {
PIP=$(which pip 2>/dev/null || which pip-python 2>/dev/null || true)
if [[ -n $PIP ]]; then
PIP_VERSION=$($PIP --version | awk '{ print $2}')
echo "pip: $PIP_VERSION"
else
echo "pip: Not Installed"
fi
}
function install_get_pip() {
if [[ ! -r $FILES/get-pip.py ]]; then
(cd $FILES; \
curl $PIP_GET_PIP_URL; \
)
fi
sudo python $FILES/get-pip.py
}
function install_pip_tarball() {
(cd $FILES; \
curl -O $PIP_TAR_URL; \
tar xvfz pip-$INSTALL_PIP_VERSION.tar.gz; \
cd pip-$INSTALL_PIP_VERSION; \
sudo python setup.py install; \
)
}
# Show starting versions
get_versions
# Do pip
# Eradicate any and all system packages
uninstall_package python-pip
if [[ -n "$USE_GET_PIP" ]]; then
install_get_pip
else
install_pip_tarball
fi
get_versions