"""
Print what this install is running, as JSON, and exit.

No network, no signing, no Final Target involvement. It exists so a master
install sharing the same server can read a tenant's details directly:

    /path/to/tenant/venv/bin/python manage.py ft_report --settings=config.settings.production

Used by ft_collect on the Final Target side.
"""
import json

from django.core.management.base import BaseCommand

from apps.ftlink.collect import local_report


class Command(BaseCommand):
    help = 'Print this install\'s version and environment details as JSON.'

    def handle(self, *args, **options):
        tenant = None
        try:
            from apps.tenants.models import Tenant
            tenant = Tenant.objects.filter(is_master=False).first() or Tenant.objects.first()
        except Exception:
            pass
        self.stdout.write(json.dumps(local_report(tenant)))
