/** * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ $applicationBaseDir = (require_once __DIR__ . '/framework/bootstrap.php'); try { $totalStartTime = microtime(true); $shell = new Zend_Console_Getopt(['profile-s' => 'Profile configuration file']); \Magento\ToolkitFramework\Helper\Cli::setOpt($shell); $args = $shell->getOptions(); if (empty($args)) { echo $shell->getUsageMessage(); exit(0); } $config = \Magento\ToolkitFramework\Config::getInstance(); $config->loadConfig(\Magento\ToolkitFramework\Helper\Cli::getOption('profile')); $config->loadLabels(__DIR__ . '/framework/labels.xml'); $labels = $config->getLabels(); echo 'Generating profile with following params:' . PHP_EOL; foreach ($labels as $configKey => $label) { echo ' |- ' . $label . ': ' . $config->getValue($configKey) . PHP_EOL; } $files = \Magento\ToolkitFramework\FixtureSet::getInstance()->getFixtures(); $logWriter = new \Zend_Log_Writer_Stream('php://output'); $logWriter->setFormatter(new \Zend_Log_Formatter_Simple('%message%' . PHP_EOL)); $logger = new \Zend_Log($logWriter); $shell = new \Magento\Framework\Shell(new \Magento\Framework\Shell\CommandRenderer(), $logger); $application = new \Magento\ToolkitFramework\Application($applicationBaseDir, $shell); $application->bootstrap(); foreach ($files as $fixture) { echo $fixture['action'] . '... ';
foreach ($indexerListIds as $key => $indexerId) { $indexer = $indexerRegistry->get($indexerId['indexer_id']); $application->indexersStates[$indexerId['indexer_id']] = $indexer->isScheduled(); $indexer->setScheduled(true); } foreach ($application->getFixtures() as $fixture) { echo $fixture->getActionTitle() . '... '; $startTime = microtime(true); $fixture->execute(); $endTime = microtime(true); $resultTime = $endTime - $startTime; echo ' done in ' . gmdate('H:i:s', $resultTime) . PHP_EOL; } foreach ($indexerListIds as $indexerId) { /** @var $indexer \Magento\Indexer\Model\Indexer */ $indexer = $indexerRegistry->get($indexerId['indexer_id']); $indexer->setScheduled($application->indexersStates[$indexerId['indexer_id']]); } if (!\Magento\ToolkitFramework\Helper\Cli::getOption('skip-reindex')) { $application->reindex(); } $totalEndTime = microtime(true); $totalResultTime = $totalEndTime - $totalStartTime; echo 'Total execution time: ' . gmdate('H:i:s', $totalResultTime) . PHP_EOL; } catch (\Zend_Console_Getopt_Exception $e) { fwrite(STDERR, $e->getMessage() . "\n\n" . $e->getUsageMessage() . "\n"); exit(1); } catch (\Exception $e) { fwrite(STDERR, $e->getMessage() . "\n"); exit(1); }
/** * Get temporary file path * * @return string */ protected function _getTemporaryFilePath() { return rtrim(\Magento\ToolkitFramework\Helper\Cli::getOption('tmp_dir', DEFAULT_TEMP_DIR), '\\/') . '/' . self::TEMP_FILE_PATTERN; }
/** * Test CLI helper * * @return void */ public function testCli() { $this->assertEquals(self::TEST_OPTION_VALUE, \Magento\ToolkitFramework\Helper\Cli::getOption(self::TEST_OPTION_NAME)); $this->assertEquals(null, \Magento\ToolkitFramework\Helper\Cli::getOption('xxx')); $this->assertEquals('default', \Magento\ToolkitFramework\Helper\Cli::getOption('xxx', 'default')); }