diff --git a/bin/compile b/bin/compile index f379411683e5989b4839d23e92086f5ac83563d4..eb8bbd479fef308dc66736ac40f68cf66879ae1e 100755 --- a/bin/compile +++ b/bin/compile @@ -53,11 +53,24 @@ for dir in $VIRTUALENV_DIRS; do cp -R $CACHE_DIR/$dir . &> /dev/null || true done -# Don't rebuild existing virtualenv. -if ! [ -f "lib/python2.7" ]; then - echo "-----> Preparing virtualenv version $(virtualenv --version)" - virtualenv --distribute --never-download --prompt=venv . | indent -fi + +# Create virtualenv. Rebuild if corrupt. +set +e + +# Try to create the virtualenv. +OUT=$(virtualenv --distribute --never-download --prompt=venv . ) + +# If there's an error, purge and recreate. +[ $? -ne 0 ] && { + echo " ! Virtualenv corrupt, rebuilding." + for dir in $VIRTUALENV_DIRS; do + rm -fr $dir &> /dev/null || true + done + OUT=$(virtualenv --distribute --never-download --prompt=venv . ) +} +echo "$OUT" | indent + +set -e # Create set-aside .heroku folder. mkdir -p .heroku