Skip to content
Snippets Groups Projects
Commit 4ade6c04 authored by Saul Shanabrook's avatar Saul Shanabrook
Browse files

Helper functions to test if in requirements used for checking for mercurial install and for pylibmc

parent e5c389e6
No related branches found
No related tags found
No related merge requests found
...@@ -173,7 +173,7 @@ set -e ...@@ -173,7 +173,7 @@ set -e
source $BIN_DIR/steps/pylibmc source $BIN_DIR/steps/pylibmc
# Install Mercurial if it appears to be required. # Install Mercurial if it appears to be required.
if (grep -Fiq "hg+" requirements.txt) then if (in-req "hg+" requirements.txt) then
pip install --use-mirrors mercurial | cleanup | indent pip install --use-mirrors mercurial | cleanup | indent
fi fi
......
#!/usr/bin/env bash #!/usr/bin/env bash
# This script serves as the Pylibmc build step of the # This script serves as the Pylibmc build step of the
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python) # [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler. # compiler.
# #
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an # A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime. # adapter between a Python application and Heroku's runtime.
# #
# This script is invoked by [`bin/compile`](/). # This script is invoked by [`bin/compile`](/).
...@@ -12,8 +12,11 @@ ...@@ -12,8 +12,11 @@
# The location of the pre-compiled libmemcached binary. # The location of the pre-compiled libmemcached binary.
VENDORED_MEMCACHED="http://cl.ly/0a191R3K160t1w1P0N25/vendor-libmemcached.tar.gz" VENDORED_MEMCACHED="http://cl.ly/0a191R3K160t1w1P0N25/vendor-libmemcached.tar.gz"
# Syntax sugar.
source $BIN_DIR/utils
# If pylibmc exists within requirements, use vendored libmemcached. # If pylibmc exists within requirements, use vendored libmemcached.
if (grep -Fiq "pylibmc" requirements.txt) then if (in-req "pylibmc" requirements.txt) then
echo "-----> Noticed pylibmc. Bootstrapping libmemcached." echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
cd .heroku cd .heroku
......
...@@ -49,4 +49,26 @@ function deep-mv (){ ...@@ -49,4 +49,26 @@ function deep-mv (){
rm -fr $1/!(tmp) rm -fr $1/!(tmp)
find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \; find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \;
} }
\ No newline at end of file
# 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
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment