resize = $resize; $this->appState = $appState; $this->objectManager = $objectManager; } /** * {@inheritdoc} */ protected function configure() { $this->setName('catalog:images:resize') ->setDescription('Creates resized product images'); } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { try { $this->appState->setAreaCode(Area::AREA_GLOBAL); $generator = $this->resize->resizeFromThemes(); /** @var ProgressBar $progress */ $progress = $this->objectManager->create(ProgressBar::class, [ 'output' => $output, 'max' => $generator->current() ]); $progress->setFormat( "%current%/%max% [%bar%] %percent:3s%% %elapsed% %memory:6s% \t| %message%" ); if ($output->getVerbosity() !== OutputInterface::VERBOSITY_NORMAL) { $progress->setOverwrite(false); } for (; $generator->valid(); $generator->next()) { $progress->setMessage($generator->key()); $progress->advance(); } } catch (\Exception $e) { $output->writeln("{$e->getMessage()}"); // we must have an exit code higher than zero to indicate something was wrong return \Magento\Framework\Console\Cli::RETURN_FAILURE; } $output->write(PHP_EOL); $output->writeln("Product images resized successfully"); } }