Skip to content

Commit 5ab6555

Browse files
committed
Use composer/semver to determine Drupal 8.5-.
1 parent 5b27047 commit 5ab6555

File tree

1 file changed

+10
-23
lines changed

1 file changed

+10
-23
lines changed

src/Commands/core/SiteInstallCommands.php

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22
namespace Drush\Commands\core;
33

4+
use Composer\Semver\Comparator;
45
use Consolidation\AnnotatedCommand\CommandData;
56
use Drupal\Core\Database\ConnectionNotDefinedException;
67
use Drush\Commands\DrushCommands;
@@ -19,25 +20,6 @@ class SiteInstallCommands extends DrushCommands implements SiteAliasManagerAware
1920
{
2021
use SiteAliasManagerAwareTrait;
2122

22-
/**
23-
* Drupal version exploded.
24-
*
25-
* eg. [8,6,0-alpha1]
26-
*
27-
* @var array
28-
*/
29-
protected $version_parts = [];
30-
31-
/**
32-
* {@inheritdoc}
33-
*/
34-
public function __construct()
35-
{
36-
$drupal_root = Drush::bootstrapManager()->getRoot();
37-
$version = Drush::bootstrap()->getVersion($drupal_root);
38-
$this->version_parts = explode('.', $version);
39-
}
40-
4123
/**
4224
* Install Drupal along with modules/themes/configuration/profile.
4325
*
@@ -159,8 +141,8 @@ public function install(array $profile, $options = ['db-url' => self::REQ, 'db-p
159141
protected function determineProfile($profile, $options, $class_loader)
160142
{
161143
// --config-dir fails with Standard profile and any other one that carries content entities.
162-
// Force to minimal install profile only for drupal <= 8.5.x.
163-
if ($options['config-dir'] && $this->version_parts[0] <= 8 && $this->version_parts[1] <= 5) {
144+
// Force to minimal install profile only for drupal < 8.6.
145+
if ($options['config-dir'] && Comparator::lessThan(self::getVersion(), '8.6')) {
164146
$this->logger()->info(dt("Using 'minimal' install profile since --config-dir option was provided."));
165147
$profile = 'minimal';
166148
}
@@ -202,8 +184,7 @@ protected function determineProfile($profile, $options, $class_loader)
202184
*/
203185
public function post($result, CommandData $commandData)
204186
{
205-
// Only for drupal <= 8.5.x.
206-
if ($config = $commandData->input()->getOption('config-dir') && $this->version_parts[0] <= 8 && $this->version_parts[1] <= 5) {
187+
if ($config = $commandData->input()->getOption('config-dir') && Comparator::lessThan(self::getVersion(), '8.6')) {
207188
// Set the destination site UUID to match the source UUID, to bypass a core fail-safe.
208189
$source_storage = new FileStorage($config);
209190
$options = ['yes' => true];
@@ -383,6 +364,7 @@ protected function getSitesSubdirFromUri($root, $uri)
383364
$sites_file = $root . '/sites/sites.php';
384365
if (file_exists($sites_file)) {
385366
include $sites_file;
367+
/** @var array $sites */
386368
if (array_key_exists($uri, $sites)) {
387369
return $sites[$uri];
388370
}
@@ -394,6 +376,11 @@ protected function getSitesSubdirFromUri($root, $uri)
394376
return false;
395377
}
396378

379+
public static function getVersion() {
380+
$drupal_root = Drush::bootstrapManager()->getRoot();
381+
return Drush::bootstrap()->getVersion($drupal_root);
382+
}
383+
397384
/**
398385
* Fake the necessary HTTP headers that the Drupal installer still needs:
399386
* @see https://github.com/drupal/drupal/blob/d260101f1ea8a6970df88d2f1899248985c499fc/core/includes/install.core.inc#L287

0 commit comments

Comments
 (0)