#!/bin/sh
set -e
-for package in python-dev python-pip python-virtualenv; do
- if [ "$(dpkg --status -- $package|sed -n 's/^Status: //p')" != "install ok installed" ]; then
- # add a space after old values
- missing="${missing:+$missing }$package"
+case "$(uname -s)" in
+Linux)
+ case "$(lsb_release --id --short)" in
+ Ubuntu|Debian)
+ # Note that we install the system version of python-libvirt here
+ # instead of relying on PyPI for that particular module. THe reason for
+ # this is that Ubuntu Precise ships libvirt 0.9.8, and PyPI's
+ # python-libvirt packages require libvirt >= 1.0.2.
+ # Some options for resolving this situation would be choosing some or
+ # all of the following:
+ # A) Removing support for Precise,
+ # B) Removing support for downburst,
+ # C) Adding "Precise" conditionals somewhere, eg. conditionalizing
+ # this bootstrap script to only use the python-libvirt package on
+ # Ubuntu Precise.
+ for package in python-dev python-pip python-virtualenv; do
+ if [ "$(dpkg --status -- $package|sed -n 's/^Status: //p')" != "install ok installed" ]; then
+ # add a space after old values
+ missing="${missing:+$missing }$package"
+ fi
+ done
+ if [ -n "$missing" ]; then
+ echo "$0: missing required packages, please install them:" 1>&2
+ echo "sudo apt-get install $missing"
+ exit 1
+ fi
+ ;;
+ Fedora)
+ for package in python-pip python-virtualenv; do
+ if [ "$(rpm -q $package)" == "package $package is not installed" ]; then
+ missing="${missing:+$missing }$package"
+ fi
+ done
+ if [ -n "$missing" ]; then
+ echo "$0: missing required packages, please install them:" 1>&2
+ echo "sudo yum install $missing"
+ exit 1
+ fi
+ ;;
+ "openSUSE project"|"SUSE LINUX")
+ for package in python-pip python-virtualenv; do
+ if [ "$(rpm -q $package)" == "package $package is not installed" ]; then
+ missing="${missing:+$missing }$package"
+ fi
+ done
+ if [ -n "$missing" ]; then
+ echo "$0: missing required packages, please install them:" 1>&2
+ echo "sudo zypper install $missing"
+ exit 1
+ fi
+ ;;
+ *)
+ echo "This script does not support your Linux distribution yet. Patches encouraged!"
+ exit 1
+ ;;
+ esac
+ ;;
+Darwin)
+ if ! which brew > /dev/null; then
+ echo "You need Homebrew: http://brew.sh/"
+ exit 1
fi
-done
-if [ -n "$missing" ]; then
- aptdcon --install $missing
-fi
+ for keg in python; do
+ if brew list $keg >/dev/null 2>&1; then
+ echo "Found $keg"
+ else
+ brew install $keg
+ fi
+ done
+ ;;
+*)
+ echo "This script does not support your OS yet. Patches encouraged!"
+ exit 1
+ ;;
+esac
+
+if [ -z "$NO_CLOBBER" ] || [ ! -e ./virtualenv ]; then
+ if ! which virtualenv > /dev/null; then
+ pip install virtualenv
+ fi
+
+ virtualenv --setuptools virtualenv
-virtualenv virtualenv
-virtualenv/bin/pip install -q -r requirements.txt
+ # avoid pip bugs
+ ./virtualenv/bin/pip install --upgrade pip
-if [ ! -e bin ]; then
- ln -s virtualenv/bin bin
+ # work-around change in pip 1.5
+ ./virtualenv/bin/pip install setuptools --no-use-wheel --upgrade
fi
+
+./virtualenv/bin/pip install -r requirements.txt
+
+#./virtualenv/bin/python setup.py develop
+
+ln -sf virtualenv/bin bin
+