feat: CI/CD pipeline setup complete - Ansible playbooks updated, secrets configured, workflow ready
This commit is contained in:
@@ -269,7 +269,10 @@ final class ConsoleApplication
|
||||
$this->output->writeWindowTitle("{$this->scriptName} - {$commandName}");
|
||||
|
||||
// Execute command via registry
|
||||
return $this->commandRegistry->executeCommand($commandName, $arguments, $this->output);
|
||||
$result = $this->commandRegistry->executeCommand($commandName, $arguments, $this->output);
|
||||
|
||||
// Handle ConsoleResult (new) or ExitCode (legacy)
|
||||
return $this->processCommandResult($result);
|
||||
|
||||
} catch (CommandNotFoundException $e) {
|
||||
return $this->errorHandler->handleCommandNotFound($commandName, $this->output);
|
||||
@@ -291,6 +294,42 @@ final class ConsoleApplication
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Process command result - supports both ConsoleResult and ExitCode
|
||||
*/
|
||||
private function processCommandResult(mixed $result): ExitCode
|
||||
{
|
||||
// New ConsoleResult pattern
|
||||
if ($result instanceof \App\Framework\Console\Result\ConsoleResult) {
|
||||
// Render result to output
|
||||
$result->render($this->output);
|
||||
|
||||
// Return exit code from result
|
||||
return $result->exitCode;
|
||||
}
|
||||
|
||||
// Legacy ExitCode pattern
|
||||
if ($result instanceof ExitCode) {
|
||||
return $result;
|
||||
}
|
||||
|
||||
// Legacy int pattern (for backwards compatibility)
|
||||
if (is_int($result)) {
|
||||
return ExitCode::from($result);
|
||||
}
|
||||
|
||||
// Invalid return type - log warning and return error
|
||||
if ($this->container->has(Logger::class)) {
|
||||
$logger = $this->container->get(Logger::class);
|
||||
$logger->warning('Command returned invalid result type', LogContext::withData([
|
||||
'result_type' => get_debug_type($result),
|
||||
'component' => 'ConsoleApplication',
|
||||
]));
|
||||
}
|
||||
|
||||
return ExitCode::GENERAL_ERROR;
|
||||
}
|
||||
|
||||
private function showCommandUsage(string $commandName): void
|
||||
{
|
||||
try {
|
||||
@@ -527,6 +566,7 @@ final class ConsoleApplication
|
||||
// Create TUI components
|
||||
$state = new TuiState();
|
||||
$renderer = new TuiRenderer($this->output);
|
||||
$menuBar = $renderer->getMenuBar();
|
||||
$commandExecutor = new TuiCommandExecutor(
|
||||
$this->output,
|
||||
$this->commandRegistry,
|
||||
@@ -537,7 +577,7 @@ final class ConsoleApplication
|
||||
new CommandHelpGenerator(new ParameterInspector()),
|
||||
$this->scriptName
|
||||
);
|
||||
$inputHandler = new TuiInputHandler($commandExecutor);
|
||||
$inputHandler = new TuiInputHandler($commandExecutor, $menuBar);
|
||||
|
||||
// Erstelle TUI Instanz
|
||||
$tui = new ConsoleTUI(
|
||||
|
||||
Reference in New Issue
Block a user