* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) */ namespace PrestaShop\Module\AutoUpgrade\Task\Upgrade; use Exception; use PrestaShop\Module\AutoUpgrade\Analytics; use PrestaShop\Module\AutoUpgrade\Task\AbstractTask; use PrestaShop\Module\AutoUpgrade\Task\ExitCode; use PrestaShop\Module\AutoUpgrade\UpgradeContainer; use PrestaShop\Module\AutoUpgrade\UpgradeTools\FilesystemAdapter; /** * Ends the upgrade process and displays the success message. */ class UpgradeComplete extends AbstractTask { const TASK_TYPE = 'upgrade'; /** * @throws Exception */ public function run(): int { $this->container->getState()->setProgressPercentage( $this->container->getCompletionCalculator()->getBasePercentageOfTask(self::class) ); $this->logger->info($this->container->getState()->getWarningExists() ? $this->translator->trans('Upgrade process done, but some warnings have been found.') : $this->translator->trans('Upgrade process done. Congratulations! You can now reactivate your shop.') ); $this->next = ''; if ($this->container->getUpgradeConfiguration()->get('channel') != 'archive' && file_exists($this->container->getFilePath()) && unlink($this->container->getFilePath())) { $this->logger->debug($this->translator->trans('%s removed', [$this->container->getFilePath()])); } elseif (is_file($this->container->getFilePath())) { $this->logger->debug('' . $this->translator->trans('Please remove %s by FTP', [$this->container->getFilePath()]) . ''); } if ($this->container->getUpgradeConfiguration()->get('channel') != 'directory' && file_exists($this->container->getProperty(UpgradeContainer::LATEST_PATH)) && FilesystemAdapter::deleteDirectory($this->container->getProperty(UpgradeContainer::LATEST_PATH))) { $this->logger->debug($this->translator->trans('%s removed', [$this->container->getProperty(UpgradeContainer::LATEST_PATH)])); } elseif (is_dir($this->container->getProperty(UpgradeContainer::LATEST_PATH))) { $this->logger->debug('' . $this->translator->trans('Please remove %s by FTP', [$this->container->getProperty(UpgradeContainer::LATEST_PATH)]) . ''); } // removing temporary files $this->container->getFileConfigurationStorage()->cleanAll(); $this->container->getAnalytics()->track('Upgrade Succeeded', Analytics::WITH_UPGRADE_PROPERTIES); return ExitCode::SUCCESS; } }