- Add DISCOVERY_LOG_LEVEL=debug - Add DISCOVERY_SHOW_PROGRESS=true - Temporary changes for debugging InitializerProcessor fixes on production
76 lines
2.2 KiB
PHP
76 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Framework\Console;
|
|
|
|
/**
|
|
* Standard Exit-Codes für Console-Anwendungen
|
|
*
|
|
* Basiert auf den POSIX-Standards und bewährten Praktiken:
|
|
* - 0: Erfolg
|
|
* - 1: Allgemeiner Fehler
|
|
* - 2: Falsche Verwendung (ungültige Argumente)
|
|
* - 64-78: Spezifische Fehler-Codes (sysexits.h Standard)
|
|
*/
|
|
enum ExitCode: int
|
|
{
|
|
case SUCCESS = 0;
|
|
case GENERAL_ERROR = 1;
|
|
case USAGE_ERROR = 2;
|
|
case COMMAND_NOT_FOUND = 64;
|
|
case INVALID_INPUT = 65;
|
|
case NO_INPUT = 66;
|
|
case UNAVAILABLE = 69;
|
|
case SOFTWARE_ERROR = 70;
|
|
case OS_ERROR = 71;
|
|
case OS_FILE_ERROR = 72;
|
|
case CANT_CREATE = 73;
|
|
case IO_ERROR = 74;
|
|
case TEMP_FAIL = 75;
|
|
case PROTOCOL_ERROR = 76;
|
|
case NO_PERMISSION = 77;
|
|
case CONFIG_ERROR = 78;
|
|
|
|
/**
|
|
* Gibt eine menschenlesbare Beschreibung des Exit-Codes zurück
|
|
*/
|
|
public function getDescription(): string
|
|
{
|
|
return match($this) {
|
|
self::SUCCESS => 'Erfolgreich abgeschlossen',
|
|
self::GENERAL_ERROR => 'Allgemeiner Fehler',
|
|
self::USAGE_ERROR => 'Falsche Verwendung oder ungültige Argumente',
|
|
self::COMMAND_NOT_FOUND => 'Kommando nicht gefunden',
|
|
self::INVALID_INPUT => 'Ungültige Eingabedaten',
|
|
self::NO_INPUT => 'Keine Eingabe vorhanden',
|
|
self::UNAVAILABLE => 'Service nicht verfügbar',
|
|
self::SOFTWARE_ERROR => 'Interner Software-Fehler',
|
|
self::OS_ERROR => 'Betriebssystem-Fehler',
|
|
self::OS_FILE_ERROR => 'Datei-/Verzeichnis-Fehler',
|
|
self::CANT_CREATE => 'Kann Datei/Verzeichnis nicht erstellen',
|
|
self::IO_ERROR => 'Ein-/Ausgabe-Fehler',
|
|
self::TEMP_FAIL => 'Temporärer Fehler',
|
|
self::PROTOCOL_ERROR => 'Protokoll-Fehler',
|
|
self::NO_PERMISSION => 'Keine Berechtigung',
|
|
self::CONFIG_ERROR => 'Konfigurationsfehler',
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Prüft, ob der Exit-Code einen Erfolg darstellt
|
|
*/
|
|
public function isSuccess(): bool
|
|
{
|
|
return $this === self::SUCCESS;
|
|
}
|
|
|
|
/**
|
|
* Prüft, ob der Exit-Code einen Fehler darstellt
|
|
*/
|
|
public function isError(): bool
|
|
{
|
|
return ! $this->isSuccess();
|
|
}
|
|
}
|