diff options
author | Isis Lovecruft <isis@torproject.org> | 2013-02-19 05:40:11 +0000 |
---|---|---|
committer | Isis Lovecruft <isis@torproject.org> | 2013-02-19 05:40:11 +0000 |
commit | c703dd828b1214dbf17b5757df43ae74def02bc2 (patch) | |
tree | 23f0a9b2395799a07c8bf39605bde1160d1e0fd6 | |
parent | 66d60a58ef752f9c9692dd8bdb0f61a5c1dfdb17 (diff) |
Add bootstrap script for creating a virtualenv to create a virtualenv for a
project, so that pip can be used without sudo.
-rwxr-xr-x | bootstrap | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..b76a572 --- /dev/null +++ b/bootstrap @@ -0,0 +1,59 @@ +#!/bin/bash +############################################################################## +# +# bootstrap +# ----------------------- +# Setup a virtualenv, without ever using sudo. +# +# @author Isis Agora Lovecruft, 0x2cdb8b35 +# @date 18 February 2013 +# @version 0.0.1 +############################################################################## + +set -ex -- + +PYTHON=$(which python) +GIT=$(which git) + +VENV_VERSION=1.8.4 +VENV_URL=https://pypi.python.org/packages/source/v/virtualenv +VENV_TARBALL=virtualenv-${VENV_VERSION}.tar.gz + +VENV_WRAPPER_VERSION=3.6 +VENV_WRAPPER_URL=https://pypi.python.org/packages/source/v/virtualenvwrapper +VENV_WRAPPER_TARBALL=virtualenvwrapper-${VENV_WRAPPER_VERSION}.tar.gz + +BOOTSTRAP_ENV=.bootstrap +BOOTSTRAP_OPTS='--no-site-packages --setuptools --unzip-setuptools --never-download' + +PACKAGE_NAME=leap_mx +PACKAGE_URL=https://github.com/isislovecruft/leap_mx.git +PACKAGE_WORKON=${PWD}/${PACKAGE_NAME} +PACKAGE_REQUIREMENTS=${PACKAGE_WORKON}/pkg/mx-requirements.pip +PACKAGE_OPTS=${BOOTSTRAP_OPTS}'' ## xxx add parameter for extra options + +echo 'Downloading virtualenv source from' +echo "${VENV_URL}..." +\wget -O ${VENV_TARBALL} ${VENV_URL}/${VENV_TARBALL} +tar xvzf ${VENV_TARBALL} + +echo 'Downloading virtualenv-wrapper source from:' +echo "${VENV_WRAPPER_URL}" +\wget -O $VENV_WRAPPER_TARBALL ${VENV_WRAPPER_URL}/${VENV_WRAPPER_TARBALL} +tar xvzf virtualenvwrapper-${VENV_WRAPPER_VERSION}.tar.gz + + +echo 'Creating initial virtualenv bootstrap environment, called "bootstrap"' +echo 'in which we will install virtualenv, to avoid using sudo.' +$PYTHON virtualenv-${VENV_VERSION}/virtualenv.py $BOOTSTRAP_OPTS $BOOTSTRAP_ENV +rm -rf virtualenv-${VENV_VERSION} +${BOOTSTRAP_ENV}/bin/pip install ${VENV_TARBALL} +echo 'Installing virtualenvwrapper in "bootstrap" virtualenv...' +${BOOTSTRAP_ENV}/bin/pip install ${VENV_WRAPPER_TARBALL} + +echo 'Using "bootstrap" virtualenv to create project virtualenv...' +source ${BOOTSTRAP_ENV}/local/bin/virtualenvwrapper.sh +echo "Cloning from ${PACKAGE_URL}..." +${GIT} clone ${PACKAGE_URL} ${PACKAGE_NAME} +mkvirtualenv -a $PROJECT_WORKON -r ${PACKAGE_REQUIREMENTS} \ + ${PACKAGE_OPTS} ${PACKAGE_NAME} |