From 469fd33818866af78c70c6e1cf5222cedd3f79a4 Mon Sep 17 00:00:00 2001 From: Swapnil Savale Date: Fri, 28 Feb 2020 02:18:20 -0500 Subject: [PATCH] Generate CSV from the upgradeHelper results --- Console/UpgradeHelperCommand.php | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Console/UpgradeHelperCommand.php b/Console/UpgradeHelperCommand.php index 2852948..20fec09 100644 --- a/Console/UpgradeHelperCommand.php +++ b/Console/UpgradeHelperCommand.php @@ -7,16 +7,28 @@ use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +use Magento\Framework\App\Filesystem\DirectoryList; +use Magento\Framework\File\Csv; +use Magento\Framework\Filesystem; class UpgradeHelperCommand extends Command { private $runner; + private $csvProcessor; + private $filesystem; + private $directoryList; public function __construct( - Runner $runner + Runner $runner, + Csv $csvProcessor, + DirectoryList $directoryList, + Filesystem $filesystem ) { parent::__construct(null); $this->runner = $runner; + $this->csvProcessor = $csvProcessor; + $this->filesystem = $filesystem; + $this->directoryList = $directoryList; } protected function configure() @@ -32,12 +44,22 @@ protected function execute(InputInterface $input, OutputInterface $output) $diff = file($input->getArgument('diff')); $result = $this->runner->run($diff); + $fileDirectoryPath = $this->directoryList->getPath(DirectoryList::ROOT); + $fileName = 'UpgradeHelperResult_'.date('m-d-Y').'.csv'; + $filePath = $fileDirectoryPath . '/' . $fileName; + $data['headers'] = ['Patched', 'Customized', 'Reviewed (Yes / No)', 'Notes']; + foreach ($result as $type => $items) { $output->writeln('-------- ' . $type . ' --------'); foreach ($items as $patched => $customized) { + $data[] = [$patched, $customized]; $output->writeln('Patched: ' . $patched); $output->writeln('Customized: ' . $customized); } } + $this->csvProcessor + ->setEnclosure('"') + ->setDelimiter(',') + ->saveData($filePath, $data); } }