/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $this->container = $this->getApplication()->getContainer(); $this->container->setParameter('update.config', []); $this->IOHelper = $ioService = new IOHelper($input, $output, $this->getHelper('question')); if (!is_dir(UPDATE_FILES_PATH) && !is_dir(UPDATE_ASSET_PATH)) { $ioService->writeln("No update files found."); return 1; } $version = $this->container->get('shopware.version'); if ($ioService->isInteractive()) { $ioService->cls(); $ioService->printBanner(); $ioService->writeln("<info>Welcome to the Shopware updater </info>"); $ioService->writeln(sprintf("Shopware Version %s", $version)); $ioService->writeln(""); $ioService->ask('Press return to start the update.'); $ioService->cls(); } $this->unpackFiles(); $this->migrateDatabase(); $this->importSnippets(); $this->cleanup(); $this->synchronizeThemes(); $this->writeLockFile(); $ioService->cls(); $ioService->writeln(""); $ioService->writeln(""); $ioService->writeln("<info>The update has been finished succesfuly.</info>"); $ioService->writeln("Your shop is currently in maintenance mode."); $ioService->writeln(sprintf("Please delete <question>%s</question> to finish the update.", UPDATE_ASSET_PATH)); $ioService->writeln(""); }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $this->IOHelper = $ioService = new IOHelper($input, $output, $this->getHelper('question')); /** @var $container Container */ $container = $this->container = $this->getApplication()->getContainer(); if (!$ioService->isInteractive()) { $ioService->writeln("<error>Non interactive installation is not supported.</error>"); return 1; } $this->printStartMessage($ioService); if ($this->isConfigured()) { $connectionInfo = $this->createConnectionInfoFromConfig(SW_PATH . '/config.php'); $connectionInfo = $this->interactDatabaseConfig($ioService, $connectionInfo); } else { $connectionInfo = $this->interactDatabaseConfig($ioService); } $conn = $this->initDatabaseConnection($connectionInfo, $container); $databaseService = new DatabaseService($conn); $skipImport = $databaseService->containsShopwareSchema() && $this->shouldSkipImport(); if (!$skipImport) { $this->importDatabase(); $this->importSnippets(); } $locales = ['de_DE', 'en_GB']; $shop = $this->askForShopInformation($locales); $currencies = ['EUR', 'USD', 'GBP']; $currency = $this->askForCurrencyInformation($currencies); $shop->currency = $currency; if (!$this->webserverCheck($ioService, $container, $shop)) { $ioService->writeln("Could not verify"); if (!$this->IOHelper->askConfirmation("Continue?")) { return 1; } } $adminUser = $this->askAdminInformation($locales); $shopService = new ShopService($conn); $shopService->updateShop($shop); $shopService->updateConfig($shop); $currencyService = new CurrencyService($conn); $currencyService->updateCurrency($shop); $currencyService = new LocaleSettingsService($conn, $container); $currencyService->updateLocaleSettings($shop->locale); $adminService = new AdminService($conn); $adminService->createAdmin($adminUser); $adminService->addWidgets($adminUser); $this->activateResponsiveTheme(); $this->IOHelper->cls(); $this->IOHelper->writeln("<info>=== License Information ===</info>"); /** @var $licenseService LicenseUnpackService */ $licenseService = $container->offsetGet('license.service'); /** @var $licenseInstaller LicenseInstaller */ $licenseInstaller = $container->offsetGet('license.installer'); $this->askShopwareEdition($shop, $licenseService, $licenseInstaller); /** @var \Shopware\Recovery\Common\SystemLocker $systemLocker */ $systemLocker = $this->container->offsetGet('system.locker'); $systemLocker(); $ioService->writeln("<info>Shop successfully installed.</info>"); }