Files
AeonDumpManager/src/Command/DumpRemoveCommand.php
T

47 lines
1.3 KiB
PHP

<?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;
}
}