Skip to content
Snippets Groups Projects
Commit 359a3b0d authored by Kenneth Reitz's avatar Kenneth Reitz
Browse files

collectstatic improvements.

parent d46e0efc
No related branches found
No related tags found
No related merge requests found
#!/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
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