From 15702afe51c574f763f626410a59e179d6300ebc Mon Sep 17 00:00:00 2001 From: metalbote <metalbote@2809357.no-reply.drupal.org> Date: Sun, 2 Feb 2020 18:12:37 +0200 Subject: [PATCH] Issue #3074961 by metalbote: Change web-root logic as drupalRoot should not be hardcoded in src/Scripthandler --- composer.json | 1 + src/composer/ScriptHandler.php | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 07455546..7d12f2a3 100644 --- a/composer.json +++ b/composer.json @@ -32,6 +32,7 @@ "cweagans/composer-patches": "~1.0", "drupal/core-composer-scaffold": "^8.8.0", "drupal/drupal-library-installer-plugin": "^0.3", + "webflo/drupal-finder": "~1.0", "drupal/varbase_core": "8.x-dev", "drupal/varbase_api": "7.x-dev", "drupal/varbase_media": "7.x-dev", diff --git a/src/composer/ScriptHandler.php b/src/composer/ScriptHandler.php index 613e1e84..cd666697 100644 --- a/src/composer/ScriptHandler.php +++ b/src/composer/ScriptHandler.php @@ -5,6 +5,7 @@ namespace Varbase\composer; use Composer\Semver\Comparator; use Symfony\Component\Filesystem\Filesystem; use Composer\EventDispatcher\Event; +use DrupalFinder\DrupalFinder; /** * Varbase Composer Script Handler. @@ -21,7 +22,16 @@ class ScriptHandler { * Drupal root path. */ protected static function getDrupalRoot($project_root) { - return $project_root . '/docroot'; + $fs = new Filesystem(); + $drupalFinder = new DrupalFinder(); + $drupalFinder->locateRoot(getcwd()); + $drupalRoot = $drupalFinder->getDrupalRoot(); + if (!$fs->exists($drupalRoot . '/core')) { + return $project_root . '/docroot'; + } + else { + return $drupalRoot; + } } /** @@ -53,20 +63,23 @@ class ScriptHandler { if (!$fs->exists($drupal_root . '/sites/default/settings.php') and $fs->exists($drupal_root . '/sites/default/default.settings.php')) { $fs->copy($drupal_root . '/sites/default/default.settings.php', $drupal_root . '/sites/default/settings.php'); $fs->chmod($drupal_root . '/sites/default/settings.php', 0666); - $event->getIO()->write("Create a sites/default/settings.php file with chmod 0666"); + $event->getIO() + ->write("Create a sites/default/settings.php file with chmod 0666"); } // Prepare the services file for installation. if (!$fs->exists($drupal_root . '/sites/default/services.yml') and $fs->exists($drupal_root . '/sites/default/default.services.yml')) { $fs->copy($drupal_root . '/sites/default/default.services.yml', $drupal_root . '/sites/default/services.yml'); $fs->chmod($drupal_root . '/sites/default/services.yml', 0666); - $event->getIO()->write("Create a sites/default/services.yml file with chmod 0666"); + $event->getIO() + ->write("Create a sites/default/services.yml file with chmod 0666"); } // Create the files directory with chmod 0777. if (!$fs->exists($drupal_root . '/sites/default/files')) { $oldmask = umask(0); $fs->mkdir($drupal_root . '/sites/default/files', 0777); umask($oldmask); - $event->getIO()->write("Create a sites/default/files directory with chmod 0777"); + $event->getIO() + ->write("Create a sites/default/files directory with chmod 0777"); } } -- GitLab