import os
import sys

import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sapl.settings")


def create_superuser():
    from django.contrib.auth.models import User

    username = "admin"
    password = os.environ[
        'ADMIN_PASSWORD'] if 'ADMIN_PASSWORD' in os.environ else None
    email = os.environ['ADMIN_EMAIL'] if 'ADMIN_EMAIL' in os.environ else ''

    if User.objects.filter(username=username).exists():
        print("[SUPERUSER] User %s already exists."
              " Exiting without change." % username)
        sys.exit('ADMIN_USER_EXISTS')
    else:
        if not password:
            print(
                "[SUPERUSER] Environment variable $ADMIN_PASSWORD"
                " for user %s was not set. Leaving..." % username)
            sys.exit('MISSING_ADMIN_PASSWORD')

        print("[SUPERUSER] Creating superuser...")

        u = User.objects.create_superuser(
            username=username, password=password, email=email)
        u.save()

        print("[SUPERUSER] Done.")

        sys.exit(0)

if __name__ == '__main__':
    django.setup()
    create_superuser()