%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/SystemReportCommand.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\Helper\Survey\ServerReportHelper; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; /** * Class SystemReportCommand * * @package OCA\Passwords\Command */ class SystemReportCommand extends Command { /** * @var ServerReportHelper */ protected ServerReportHelper $serverReportHelper; /** * SystemReportCommand constructor. * * @param ServerReportHelper $serverReportHelper */ public function __construct(ServerReportHelper $serverReportHelper) { parent::__construct(); $this->serverReportHelper = $serverReportHelper; } /** * */ protected function configure(): void { $this->setName('passwords:system:report') ->setDescription('Print system information as detected by the app') ->addArgument('sections', InputArgument::IS_ARRAY, 'Only print the given section(s)') ->addOption('basic', 'b', InputOption::VALUE_NONE, 'Only print basic report'); } /** * @param InputInterface $input * @param OutputInterface $output * * @return int */ protected function execute(InputInterface $input, OutputInterface $output): int { $sections = $input->getArgument('sections'); $enhanced = !$input->getOption('basic') || !empty($sections); $data = $this->serverReportHelper->getReport($enhanced); if(!empty($sections)) { if(in_array('debug', $sections)) { $sections = ['version', 'environment', 'services', 'status', 'settings', 'encryption']; } $sectionData = []; foreach($sections as $section) { if(isset($data[ $section ])) { $sectionData[ $section ] = $data[ $section ]; } } $json = json_encode($sectionData, JSON_PRETTY_PRINT); } else { $json = json_encode($data, JSON_PRETTY_PRINT); } $output->write($json, true); return 0; } }