#!/usr/bin/env python3
# pylint: disable=invalid-name
""" Django's command-line utility for administrative tasks. """
import os
import sys


def main():
    """" Application entry point """
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "integreat_cms.core.settings")
    running_tests = False
    for arg in sys.argv:
        if arg == "--set=COVERAGE":
            running_tests = True
    if running_tests:
        # pylint: disable=import-outside-toplevel
        from coverage import Coverage

        cov = Coverage()
        cov.erase()
        cov.start()

    try:
        # pylint: disable=import-outside-toplevel
        from django.core.management import execute_from_command_line
    except ImportError:
        # The above import may fail for some other reason. Ensure that the
        # issue is really that Django is missing to avoid masking other
        # exceptions on Python 2.
        try:
            # pylint: disable=import-outside-toplevel,unused-import
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(sys.argv)

    if running_tests:
        cov.stop()
        cov.save()
        cov.html_report()
        covered = cov.report()
        cov.erase()


if __name__ == "__main__":
    main()
