#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
import pwd
import grp


def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gamoto.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        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?"
        ) from exc

    # Check UID
    from django.conf import settings

    try:
        uid = pwd.getpwnam(settings.GAMOTO_USER).pw_uid
    except KeyError as err:
        print("Invalid user `%s`" % settings.GAMOTO_USER)
        sys.exit(1)

    try:
        gid = grp.getgrnam(settings.GAMOTO_GROUP).gr_gid
    except KeyError as err:
        print("Invalid group `%s`" % settings.GAMOTO_GROUP)
        sys.exit(1)

    try:
        if os.getgid() != gid:
            os.setgid(gid)
        if os.getuid() != uid:
            os.setuid(uid)
    except PermissionError as err:
        print("Couldn't set UID %s. Try again as `root` or `%s`" % (
            uid, settings.GAMOTO_USER))
        sys.exit(1)

    execute_from_command_line(sys.argv)

if __name__ == '__main__':
    main()
