<?php

namespace App\Console\Commands;

use App\Models\ProxyHost;
use Illuminate\Console\Command;

/**
 * Gibt die Hostnamen aus, die der Reverse Proxy bedienen soll — eine je Zeile,
 * mit ihrem Zweck.
 *
 * NUR die Liste, nicht die fertige Caddy-Konfiguration. Das ist der ganze Punkt.
 *
 * `install-agent.sh` begründet für die sudoers-Freigabe: „a grant is only worth
 * anything if the holder cannot change what it grants." Dürfte diese Anwendung
 * Caddy-Blöcke schreiben, die ein root-Helfer ungeprüft einbaut, hätte sie über
 * den Umweg der Konfiguration alles, was der Proxy kann — Weiterleitungen
 * irgendwohin, Dateiauslieferung aus jedem Verzeichnis. Sie gibt deshalb NAMEN
 * aus, und die Vorlage darum herum steht im root-eigenen Helfer, wo diese
 * Anwendung sie nicht anfassen kann.
 *
 * Format je Zeile: `<hostname> <purpose>`.
 */
class ProxyHostList extends Command
{
    protected $signature = 'clupilot:proxy-hosts';

    protected $description = 'Lists the hostnames the reverse proxy should serve, one per line';

    public function handle(): int
    {
        foreach (ProxyHost::query()->orderBy('hostname')->get() as $host) {
            $this->line($host->hostname.' '.$host->purpose);
        }

        return self::SUCCESS;
    }
}
