#!/usr/bin/env python
from django.core.management import execute_manager
try:
    import settings # Assumed to be in the same directory.
except ImportError:
    import sys
    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
    sys.exit(1)

if __name__ == "__main__":
    try:
        execute_manager(settings)
    except Exception, e:
        # Custom handling of exceptions to make sure
        # that Sentry handles them.
        import sys, traceback
        if sys.stdout.isatty():
            traceback.print_exc()
        else:
            if settings.DEBUG or not 'sentry.client' in settings.INSTALLED_APPS:
                raise
            from sentry.client.models import get_client
            exc_info = sys.exc_info()
            if getattr(exc_info[0], 'skip_sentry', False):
                raise
            get_client().create_from_exception(exc_info)

            # Email admins
            import logging
            logger = logging.getLogger('management_commands')
            logger.exception(e)
