Compare commits

..

8 Commits

Author SHA1 Message Date
Kenneth Reitz ddde30a12e new pylibmc test 2013-01-09 13:18:22 -05:00
Kenneth Reitz 2db5578998 set buildtime vars, cleanup comments
/cc @alexclark
2013-01-09 13:04:27 -05:00
Kenneth Reitz 290250836f unnecessary PYTHONHOME for uWSGI 2013-01-04 15:06:17 -05:00
Kenneth Reitz 0ff4df4dc3 much better 2013-01-03 14:57:08 -05:00
Kenneth Reitz 9177aa2c08 remove bunk 2013-01-03 14:20:43 -05:00
Kenneth Reitz ad791dc7f8 v14 2013-01-03 14:17:04 -05:00
Kenneth Reitz 6b298ff7f3 remove bunk cd 2013-01-03 14:06:09 -05:00
Kenneth Reitz 01e30e938c move precompile up a bit 2013-01-03 14:05:29 -05:00
4 changed files with 12 additions and 58 deletions
+9 -35
View File
@@ -1,34 +1,10 @@
#!/usr/bin/env bash
# This script serves as the
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler.
#
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime.
#
# You can intreract with the Heroku API directly with [heroku.py](https://github.com/heroku/heroku.py/).
#
# See also: [Release history](/changelog.html), [Detection](/detect.html).
#
# ## Usage
# Compiling an app into a slug is simple:
# Usage:
#
# $ bin/compile <build-dir> <cache-dir>
# ## Assumptions
#
# This buildpack makes the following assumptions:
#
# - The desired Python VM is available on the base system.
# - Library dependencies are available on the base system.
# - Django applications should not require any platform-specific configuration.
# <hr />
# ## Context
# Fail fast and fail hard.
set -eo pipefail
@@ -79,9 +55,9 @@ BUILD_DIR=$APP_DIR
# Prepend proper path buildpack use.
export PATH=$BUILD_DIR/.heroku/python/bin:$PATH
export PYTHONUNBUFFERED=1
# ## Build Time
#
export LANG=en_US.UTF-8
export LIBRARY_PATH=/app/.heroku/vendor/lib
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib
# Switch to the repo's context.
cd $BUILD_DIR
@@ -171,7 +147,7 @@ set -e
source $BIN_DIR/steps/pylibmc
# Install Mercurial if it appears to be required.
if (in-req "hg+" requirements.txt) then
if (grep -Fiq "hg+" requirements.txt) then
pip install --use-mirrors mercurial | cleanup | indent
fi
@@ -193,21 +169,19 @@ done
# Set context environment variables.
set-env PATH '$HOME/.heroku/python/bin:$PATH'
# set-env PYTHONHOME /app/.heroku/python/
set-env PYTHONUNBUFFERED true
set-env PYTHONHOME /app/.heroku/python
set-default-env LIBRARY_PATH /app/.heroku/vendor/lib
set-default-env LD_LIBRARY_PATH /app/.heroku/vendor/lib
set-default-env LANG en_US.UTF-8
set-default-env PYTHONHASHSEED random
set-default-env PYTHONPATH /app/
un-set-env PYTHONHOME
# Experimental post_compile hook.
source $BIN_DIR/steps/hooks/post_compile
# ### Fin.
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
deep-mv $TMP_APP_DIR $APP_DIR
# Experimental post_compile hook.
source $BIN_DIR/steps/hooks/post_compile
+1 -1
View File
@@ -16,7 +16,7 @@ VENDORED_MEMCACHED="http://cl.ly/0a191R3K160t1w1P0N25/vendor-libmemcached.tar.gz
source $BIN_DIR/utils
# If pylibmc exists within requirements, use vendored libmemcached.
if (in-req "pylibmc" requirements.txt) then
if (grep -Fiq "pylibmc" requirements.txt) then
echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
cd .heroku
-22
View File
@@ -52,25 +52,3 @@ function deep-mv (){
rm -fr $1/!(tmp)
find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \;
}
# Recursively finds requirements.txt files
function list-req (){
echo $@
for req in $(grep -Fie "-r " $@ | sed 's/-r //g')
do
path="$(dirname $@)/$req"
list-req $path
done
}
# Find pattern in requirements files recursively
# Usage: $ in-req pattern file
function in-req (){
for file in $(list-req $2)
do
if (grep -Fiqe "$1" "$file") then
return 0
fi
done
return 1
}
+2
View File
@@ -0,0 +1,2 @@
pylibmc
psycopg2