#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
from pathlib import Path


def main():
    """Run administrative tasks."""
    if not os.environ.get('DJANGO_SETTINGS_MODULE'):
        base_dir = Path(__file__).resolve().parent
        packages_with_settings = [
            p.name
            for p in base_dir.iterdir()
            if p.is_dir()
            and (p / "__init__.py").exists()
            and (p / "settings.py").exists()
        ]

        if "backend" in packages_with_settings:
            os.environ.setdefault("DJANGO_SETTINGS_MODULE", "backend.settings")
        elif len(packages_with_settings) == 1:
            os.environ.setdefault("DJANGO_SETTINGS_MODULE", f"{packages_with_settings[0]}.settings")
        else:
            os.environ.setdefault("DJANGO_SETTINGS_MODULE", "backend.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
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()
