From 34069b74475d0d6918bc72f4a2e60e38247f796c Mon Sep 17 00:00:00 2001 From: Stephen Meier Date: Sat, 16 Jan 2021 11:05:07 -0500 Subject: [PATCH] Make use of environmental variables for superuser creation --- evennia/server/evennia_launcher.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/evennia/server/evennia_launcher.py b/evennia/server/evennia_launcher.py index dcfbbb8a7c..bfa75dcbc6 100644 --- a/evennia/server/evennia_launcher.py +++ b/evennia/server/evennia_launcher.py @@ -1423,7 +1423,21 @@ def create_superuser(): "\nCreate a superuser below. The superuser is Account #1, the 'owner' " "account of the server. Email is optional and can be empty.\n" ) - django.core.management.call_command("createsuperuser", interactive=True) + + from os import environ + if ("DJANGO_SUPERUSER_USERNAME" in environ) and ("DJANGO_SUPERUSER_EMAIL" in environ): + username, email = environ["DJANGO_SUPERUSER_USERNAME"], environ["DJANGO_SUPERUSER_EMAIL"] + django.core.management.call_command("createsuperuser", "--noinput", + "--username=" + username, + "--email=" + email, interactive=False) + if "DJANGO_SUPERUSER_PASSWORD" in environ: + password = environ["DJANGO_SUPERUSER_PASSWORD"] + from evennia.accounts.models import AccountDB + u = AccountDB.objects.get(username=username) + u.set_password(password) + u.save() + else: + django.core.management.call_command("createsuperuser", interactive=True) def check_database(always_return=False):