Commit 359a3b0d authored by Kenneth Reitz's avatar Kenneth Reitz

collectstatic improvements.

parent d46e0efc
#!/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.
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 explicitily specified in requirments.txt
pip-grep -s requirements.txt django Django && DJANGO_INSTALLED=1
bpwatch start collectstatic
bpwatch start collectstatic # metrics collection
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALLED" ]; then
set +e
echo "-----> Preparing static assets with 'collectstatic'."
echo " Running collectstatic..."
# Run collectstatic, cleanup some of the noisy output.
python $MANAGE_FILE collectstatic --noinput 2>&1 | sed '/^Copying/d;/^$/d;/^ /d' | indent
# Display a warning if collectstatic failed.
......@@ -23,6 +37,16 @@ if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALL
echo " ! Error while runnning '$ python $MANAGE_FILE collectstatic --noinput'."
echo " See traceback above for more details."
echo " More info: http://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
fi
# Abort the build.
exit 1
}
......@@ -30,4 +54,4 @@ if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALL
echo
fi
bpwatch stop collectstatic
bpwatch stop collectstatic # metrics collection
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment