%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Command/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Command/BackupListCommand.php |
<?php
/**
* This file is part of the Passwords App
* created by Marius David Wieschollek
* and licensed under the AGPL.
*/
namespace OCA\Passwords\Command;
use OCA\Passwords\Services\BackupService;
use OCP\Files\NotPermittedException;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Class BackupListCommand
*
* @package OCA\Passwords\Command
*/
class BackupListCommand extends Command {
/**
* @var BackupService
*/
protected BackupService $backupService;
/**
* BackupListCommand constructor.
*
* @param BackupService $backupService
*/
public function __construct(BackupService $backupService) {
$this->backupService = $backupService;
parent::__construct();
}
/**
*
*/
protected function configure(): void {
$this->setName('passwords:backup:list')
->addOption('details', 'd', InputOption::VALUE_NONE, 'Inspect backup files and list contents')
->setDescription('Print a list of the available backups');
}
/**
* @param InputInterface $input
* @param OutputInterface $output
*
* @return int
* @throws NotPermittedException
*/
protected function execute(InputInterface $input, OutputInterface $output): int {
$backups = $this->backupService->getBackups();
if(empty($backups)) {
$output->writeln('No backups found');
return 0;
}
$details = (bool) $input->getOption('details');
$output->writeln('The following backups are available:');
foreach($backups as $backup) {
$info = $this->backupService->getBackupInfo($backup, $details);
$output->writeln(sprintf(' %-20s %s %s', $info['label'], $info['size'], $info['format']));
if($details) {
$space = str_repeat(' ', 4);
if(isset($info['error'])) {
$output->writeln(sprintf('%sError %s', $space, $info['error']));
}
if(isset($info['version'])) {
$output->writeln(sprintf('%sVersion %s', $space, $info['version']));
}
if(isset($info['users'])) {
$output->writeln(sprintf('%s%-5s users', $space, $info['users']));
}
if(isset($info['entities'])) {
foreach($info['entities'] as $key => $value) {
$output->writeln(sprintf('%s%-5s %s', $space, $value, $key));
}
}
}
}
return 0;
}
}