46ea723868
'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
96 lines
1.9 KiB
Bash
Executable File
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
|