mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
f74d4db8c5
* fixed the bug for pypy-5.8.0 * enable shellcheck in makefile Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * make compile script shellcheck compatible Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * let's see what this says * fix pip installation Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck detect script * shellcheck release Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck test-compile Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck warnings/utils * updated makefile Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck collectstatic Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck cryptography Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck eggpath fixes Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck gdal * shellcheck goes-libs Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck mercurial Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * nltk shellcheck * shellcheck pip-install Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck pip-uninstall Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck pipenv Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck pylibmc Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * shellcheck python Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * update makefile Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * final update to makefile Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * fix tests Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * actually fix the tests Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * update pipenv-python-version Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * requested fixes Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * update spellcheck sources * attempted fix for shell globbing Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * further attempted fix Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * switch nltk styling Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * no more need for temp app for installing pip Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * attempt at staged build for shellcheck Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * attempted fix of travis file Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * reorder travis file * add shellcheck to install * make things clearer in travis file Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * better travis file Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * attempt at better travis file Signed-off-by: Kenneth Reitz <me@kennethreitz.org> * better travis file Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
66 lines
2.2 KiB
Bash
Executable File
66 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Django Collectstatic runner. If you have Django installed, collectstatic will
|
|
# automatically be executed as part of the build process. If collectstatic
|
|
# fails, your build fails.
|
|
|
|
# This functionality will only activate if Django is in requirements.txt.
|
|
|
|
# Runtime arguments:
|
|
# - $DISABLE_COLLECTSTATIC: disables this functionality.
|
|
# - $DEBUG_COLLECTSTATIC: upon failure, print out environment variables.
|
|
|
|
# shellcheck source=bin/utils
|
|
source $BIN_DIR/utils
|
|
|
|
# Location of 'manage.py', if it exists.
|
|
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1)
|
|
MANAGE_FILE=${MANAGE_FILE:-fakepath}
|
|
|
|
# Legacy file-based support for $DISABLE_COLLECTSTATIC
|
|
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
|
|
|
|
# Ensure that Django is explicitly specified in requirements.txt
|
|
sp-grep -s django && DJANGO_INSTALLED=1
|
|
|
|
|
|
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALLED" ]; then
|
|
set +e
|
|
|
|
puts-step "$ python $MANAGE_FILE collectstatic --noinput"
|
|
|
|
# Run collectstatic, cleanup some of the noisy output.
|
|
python "$MANAGE_FILE" collectstatic --noinput --traceback 2>&1 | sed '/^Post-processed/d;/^Copying/d;/^$/d' | indent
|
|
COLLECTSTATIC_STATUS="${PIPESTATUS[0]}"
|
|
|
|
set -e
|
|
|
|
# Display a warning if collectstatic failed.
|
|
[ "$COLLECTSTATIC_STATUS" -ne 0 ] && {
|
|
|
|
echo
|
|
echo " ! Error while running '$ python $MANAGE_FILE collectstatic --noinput'."
|
|
echo " See traceback above for details."
|
|
echo
|
|
echo " You may need to update application code to resolve this error."
|
|
echo " Or, you can disable collectstatic for this application:"
|
|
echo
|
|
echo " $ heroku config:set DISABLE_COLLECTSTATIC=1"
|
|
echo
|
|
echo " https://devcenter.heroku.com/articles/django-assets"
|
|
|
|
# Additionally, dump out the environment, if debug mode is on.
|
|
if [ "$DEBUG_COLLECTSTATIC" ]; then
|
|
echo
|
|
echo "****** Collectstatic environment variables:"
|
|
echo
|
|
env | indent
|
|
fi
|
|
|
|
# Abort the build.
|
|
exit 1
|
|
}
|
|
|
|
echo
|
|
fi
|