Files
flask-heroku/flask_heroku.py
T
2012-08-22 20:32:22 -03:00

58 lines
2.3 KiB
Python

#!/usr/bin/env python
import urlparse
from os import environ
class Heroku(object):
"""Heroku configurations for flask."""
def __init__(self, app):
self.app = app
# SQL-Alchemy
self.app.config.setdefault('SQLALCHEMY_DATABASE_URI', environ.get('DATABASE_URL'))
# Sentry
self.app.config.setdefault('SENTRY_DSN', environ.get('SENTRY_DSN'))
# Exceptional
self.app.config.setdefault('EXCEPTIONAL_API_KEY', environ.get('EXCEPTIONAL_API_KEY'))
# Flask-GoogleFed
self.app.config.setdefault('GOOGLE_DOMAIN', environ.get('GOOGLE_DOMAIN'))
# Celery w/ RabbitMQ
self.app.config.setdefault('BROKER_URL', environ.get('RABBITMQ_URL'))
# Mailgun
self.app.config.setdefault('SMTP_SERVER', environ.get('MAILGUN_SMTP_SERVER'))
self.app.config.setdefault('SMTP_LOGIN', environ.get('MAILGUN_SMTP_LOGIN'))
self.app.config.setdefault('SMTP_PASSWORD', environ.get('MAILGUN_SMTP_PASSWORD'))
# Redis To Go
redis_url = environ.get('REDISTOGO_URL')
if redis_url:
url = urlparse.urlparse(redis_url)
self.app.config.setdefault('REDIS_HOST', url.hostname)
self.app.config.setdefault('REDIS_PORT', url.port)
self.app.config.setdefault('REDIS_PASSWORD', url.password)
# Mongolab
mongolab_uri = environ.get('MONGOLAB_URI')
if mongolab_uri:
url = urlparse.urlparse(mongolab_uri)
self.app.config.setdefault('MONGODB_USER', url.username)
self.app.config.setdefault('MONGODB_PASSWORD', url.password)
self.app.config.setdefault('MONGODB_HOST', url.hostname)
self.app.config.setdefault('MONGODB_PORT', url.port)
self.app.config.setdefault('MONGODB_DB', url.path[1:])
# MongoHQ
mongohq_uri = environ.get('MONGOHQ_URL')
if mongohq_uri:
url = urlparse.urlparse(mongohq_uri)
self.app.config.setdefault('MONGODB_USER', url.username)
self.app.config.setdefault('MONGODB_PASSWORD', url.password)
self.app.config.setdefault('MONGODB_HOST', url.hostname)
self.app.config.setdefault('MONGODB_PORT', url.port)
self.app.config.setdefault('MONGODB_DB', url.path[1:])