backupscript/src/CommandShow.php

48 lines
1.2 KiB
PHP
Raw Normal View History

2023-05-26 11:47:40 +00:00
<?php
2023-06-08 12:44:59 +00:00
2023-05-26 11:47:40 +00:00
namespace App;
2023-06-12 09:30:10 +00:00
use Symfony\Component\Console\Attribute\AsCommand;
2023-05-26 11:47:40 +00:00
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Output\OutputInterface;
2023-05-31 09:00:20 +00:00
use Symfony\Component\Console\Style\SymfonyStyle;
2023-05-26 11:47:40 +00:00
2023-06-12 09:30:10 +00:00
#[AsCommand(
name: 'show',
description: 'Show all backup entries.',
)]
2023-05-26 11:47:40 +00:00
class CommandShow extends Command
{
protected function configure(): void
{
2023-06-08 12:44:59 +00:00
$this->addArgument(
'config',
2023-06-13 08:15:29 +00:00
InputArgument::REQUIRED,
'Configuration file'
2023-06-08 12:44:59 +00:00
);
2023-05-26 11:47:40 +00:00
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
2023-06-08 12:44:59 +00:00
$sio = new SymfonyStyle($input, $output);
$sio->title('List backup entities');
2023-05-31 09:00:20 +00:00
2023-05-26 11:47:40 +00:00
try {
2023-07-04 08:19:02 +00:00
$app = new App((string)$input->getArgument('config'));
2023-06-08 12:44:59 +00:00
} catch (\Throwable $e) {
$sio->error('Configuration error: ' . $e->getMessage());
2023-05-26 13:04:15 +00:00
return Command::FAILURE;
2023-05-26 11:47:40 +00:00
}
2023-06-08 12:44:59 +00:00
$sio->table(
['Description', 'Source', 'Destination'],
$app->getConfig('backup')
2023-06-08 12:44:59 +00:00
);
2023-05-31 09:00:20 +00:00
2023-06-08 12:44:59 +00:00
$sio->success("Done");
2023-05-26 11:47:40 +00:00
return Command::SUCCESS;
}
2023-06-08 12:44:59 +00:00
}