Usage:
curl -Lks https://raw.github.com/gist/4176180/install.sh | sh -s -- [app [ssh-host]]
Implements the steps from this heroku/django article
Usage:
curl -Lks https://raw.github.com/gist/4176180/install.sh | sh -s -- [app [ssh-host]]
Implements the steps from this heroku/django article
venv | |
*.pyc | |
.*.log |
#!/bin/sh | |
app=${1:-django-heroku-$(date +%Y%m%dt%H%M%S)-$$${RANDOM}} | |
sshhost=${2} | |
mkdir ${app} || exit ${LINENO} | |
cd ${app} || exit ${LINENO} | |
exec 3>&1 4>&2 | |
exec >.install.log 2>&1 | |
set -xv | |
is() { printf '\e[80D\e[K%s ' "${*}" >&3 ; } | |
is Configuring Python | |
virtualenv venv --distribute | |
source venv/bin/activate | |
is Configuring Django | |
pip install Django psycopg2 dj-database-url | |
django-admin.py startproject ${app} . | |
pip freeze > requirements.txt | |
is Pulling updates | |
gist='https://raw.github.com/gist/4176180' | |
curl -Lks ${gist}/gitignore >.gitignore | |
curl -LksO ${gist}/Procfile | |
curl -Lks ${gist}/settings.py >> ${app}/settings.py | |
is Initializing git | |
git init | |
git add . | |
git commit -m "init" || exit ${LINENO} | |
heroku apps:create ${app} || heroku create || exit ${LINENO} | |
is Pushing to heroku | |
# if heroku ssh is a different host than heroku.com, e.g. | |
# because of using a different id_rsa in ~/.ssh/config, | |
# then this allows an update to .git/config prior to push. | |
[ "${sshhost}" ] && { | |
perl -pi -e 's/(url = git[@])(heroku.com)/$1'${sshhost}'.$2/' .git/config | |
} | |
git push heroku master | |
heroku apps:open ${app} | |
is Done | |
echo >&3 |
web: python manage.py runserver 0.0.0.0:$PORT --noreload |
# Parse database configuration from $DATABASE_URL | |
import dj_database_url | |
DATABASES['default'] = dj_database_url.config() |