feat(dump): add console commands to list, create and remove dumps

This commit is contained in:
2026-09-14 22:00:26 +02:00
parent a21b5aa73e
commit b66bc550cd
3 changed files with 149 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
<?php declare(strict_types=1);
namespace AeonDumpManager\Command;
use AeonDumpManager\Service\DumpService;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
#[AsCommand(
name: 'aeon:dump:remove',
description: 'Remove an existing SQL dump',
)]
class DumpRemoveCommand extends Command
{
public function __construct(private readonly DumpService $dumpService)
{
parent::__construct();
}
protected function configure(): void
{
$this->addArgument('filename', InputArgument::REQUIRED, 'Filename of the dump to remove, as shown by aeon:dump:list');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$filename = (string) $input->getArgument('filename');
try {
$this->dumpService->delete($filename);
} catch (\Throwable $exception) {
$io->error($exception->getMessage());
return Command::FAILURE;
}
$io->success(sprintf('Dump removed: %s', $filename));
return Command::SUCCESS;
}
}