Skip to content

Commit

Permalink
Improve Check Requirements Command
Browse files Browse the repository at this point in the history
  • Loading branch information
M0rgan01 committed Nov 20, 2024
1 parent bb55f8f commit 7b93bb2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
18 changes: 17 additions & 1 deletion classes/Commands/CheckRequirementsCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@
namespace PrestaShop\Module\AutoUpgrade\Commands;

use Exception;
use PrestaShop\Module\AutoUpgrade\Parameters\UpgradeConfiguration;
use PrestaShop\Module\AutoUpgrade\Services\DistributionApiService;
use PrestaShop\Module\AutoUpgrade\Services\PhpVersionResolverService;
use PrestaShop\Module\AutoUpgrade\Task\ExitCode;
use PrestaShop\Module\AutoUpgrade\UpgradeContainer;
use PrestaShop\Module\AutoUpgrade\UpgradeSelfCheck;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
Expand All @@ -40,7 +42,7 @@
class CheckRequirementsCommand extends AbstractCommand
{
/** @var string */
protected static $defaultName = 'update:check';
protected static $defaultName = 'update:check-requirements';
const MODULE_CONFIG_DIR = 'autoupgrade';
/** @var UpgradeSelfCheck */
private $upgradeSelfCheck;
Expand All @@ -55,6 +57,8 @@ protected function configure(): void
->setDescription('Check all prerequisites for an update.')
->setHelp('This command allows you to check the prerequisites necessary for the proper functioning of an update.')
->addOption('config-file-path', null, InputOption::VALUE_REQUIRED, 'Configuration file location for update.')
->addOption('zip', null, InputOption::VALUE_REQUIRED, 'Sets the archive zip file for a local update.')
->addOption('xml', null, InputOption::VALUE_REQUIRED, 'Sets the archive xml file for a local update.')
->addArgument('admin-dir', InputArgument::REQUIRED, 'The admin directory name.');
}

Expand All @@ -67,6 +71,17 @@ protected function execute(InputInterface $input, OutputInterface $output): ?int
$this->setupContainer($input, $output);
$this->output = $output;

$options = [
UpgradeConfiguration::ARCHIVE_ZIP => 'zip',
UpgradeConfiguration::ARCHIVE_XML => 'xml',
];
foreach ($options as $configKey => $optionName) {
$optionValue = $input->getOption($optionName);
if ($optionValue !== null) {
$this->consoleInputConfiguration[$configKey] = $optionValue;
}
}

$configPath = $input->getOption('config-file-path');
$exitCode = $this->loadConfiguration($configPath);
if ($exitCode !== ExitCode::SUCCESS) {
Expand All @@ -77,6 +92,7 @@ protected function execute(InputInterface $input, OutputInterface $output): ?int

$this->upgradeContainer->initPrestaShopAutoloader();
$this->upgradeContainer->initPrestaShopCore();
$this->upgradeContainer->getState()->initDefault($this->upgradeContainer->getProperty(UpgradeContainer::PS_VERSION), $this->upgradeContainer->getUpgrader()->getDestinationVersion());

$distributionApiService = new DistributionApiService();
$phpVersionResolverService = new PhpVersionResolverService(
Expand Down
6 changes: 6 additions & 0 deletions classes/Task/Miscellaneous/UpdateConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,12 @@ public function run(): int
}
}

// If no channel is specified, and there is a configuration relating to archive files, we deduce that the channel is local
$archiveFilesConfExist = isset($config[UpgradeConfiguration::ARCHIVE_XML]) || isset($config[UpgradeConfiguration::ARCHIVE_ZIP]);
if (!isset($config[UpgradeConfiguration::CHANNEL]) && $archiveFilesConfExist) {
$config[UpgradeConfiguration::CHANNEL] = UpgradeConfiguration::CHANNEL_LOCAL;
}

$isLocal = $config[UpgradeConfiguration::CHANNEL] === UpgradeConfiguration::CHANNEL_LOCAL;

$error = $this->container->getConfigurationValidator()->validate($config);
Expand Down

0 comments on commit 7b93bb2

Please sign in to comment.