From ca6c6b256cb37eff371b0f7cfb19ba58350fb8f8 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Tue, 9 Jun 2020 10:02:59 +0200 Subject: [PATCH] Add support for drupalspoons --- .gitignore | 1 + composer.json | 8 ++++---- src/CommandProvider.php | 5 +---- src/Handler.php | 44 ++++++++++++++++++++++++----------------- src/PrepareCommand.php | 6 ++++-- 5 files changed, 36 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 7579f74..b434878 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ vendor +.env composer.lock diff --git a/composer.json b/composer.json index 7a1d210..17d0d4e 100644 --- a/composer.json +++ b/composer.json @@ -24,14 +24,14 @@ "source": "https://gitlab.lakedrops.com/composer/plugin/dorgflow/tree/master" }, "require": { - "php": ">=7.0", + "php": ">=7.2", "composer-plugin-api": "^1.0.0", "cypresslab/gitelephant": "^2.0|^4.0", - "lakedrops/composer-json-utils": "^1.3.2" + "lakedrops/composer-json-utils": "^1.5" }, "require-dev": { - "composer/composer": "^1.5.0", - "phpunit/phpunit": "^4.8.0" + "composer/composer": "^1.10", + "phpunit/phpunit": "^8.4" }, "minimum-stability": "dev", "prefer-stable": true, diff --git a/src/CommandProvider.php b/src/CommandProvider.php index f34e7b0..8518e8b 100644 --- a/src/CommandProvider.php +++ b/src/CommandProvider.php @@ -3,14 +3,11 @@ namespace LakeDrops\DorgFlow; use Composer\Plugin\Capability\CommandProvider as CommandProviderCapability; -use Composer\Command\BaseCommand; class CommandProvider implements CommandProviderCapability { /** - * Retrieves an array of commands - * - * @return BaseCommand[] + * {@inheritdoc} */ public function getCommands(): array { return [ diff --git a/src/Handler.php b/src/Handler.php index bc75eaf..eabba98 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -2,6 +2,7 @@ namespace LakeDrops\DorgFlow; +use Exception; use GitElephant\Repository; use LakeDrops\Component\Composer\BaseHandler; use Symfony\Component\Filesystem\Filesystem; @@ -23,22 +24,26 @@ class Handler extends BaseHandler { return; } - $options = $this->getOptions(); - if (empty($options['projects'])) { - return; - } - - $this->io->write('Dorgflow: Preparing drupal.org packages for development', TRUE); $installationManager = $this->composer->getInstallationManager(); - foreach ($options['projects'] as $project => $version) { - $package = $this->getPackage($project); - if ($package === NULL) { + $options = $this->getOptions(); + foreach ([ + 'projects' => 'git.drupal.org:project', + 'drupalspoons' => 'gitlab.com:drupalspoons', + ] as $type => $url) { + if (empty($options[$type])) { continue; } + $this->io->write('Dorgflow: Preparing ' . $url . ' packages for development', TRUE); + foreach ($options[$type] as $project => $version) { + $package = $this->getPackage($project); + if ($package === NULL) { + continue; + } - $path = $installationManager->getInstallPath($package); - $this->io->write("- $project => $path", TRUE); - $this->prepareWorkingDirectory($path, $project, $version); + $path = $installationManager->getInstallPath($package); + $this->io->write("- $project => $path", TRUE); + $this->prepareWorkingDirectory($path, $project, $version, $url); + } } } @@ -51,8 +56,9 @@ class Handler extends BaseHandler { protected function getOptions(): array { $extra = $this->composer->getPackage()->getExtra() + ['dorgflow' => []]; return $extra['dorgflow'] + [ - 'projects' => [], - ]; + 'projects' => [], + 'drupalspoons' => [], + ]; } /** @@ -64,10 +70,12 @@ class Handler extends BaseHandler { * Name of the project. * @param string $version * Version to checkout. + * @param string $url + * Base URL to checkout from. */ - protected function prepareWorkingDirectory($path, $project, $version) { - list(, $projectname) = explode('/', $project); - $uri = 'git@git.drupal.org:project/' . $projectname . '.git'; + protected function prepareWorkingDirectory($path, $project, $version, $url) { + [, $projectname] = explode('/', $project); + $uri = 'git@' . $url . '/' . $projectname . '.git'; // Git Clone the repository into the working directory. $repository = Repository::open($path); @@ -80,7 +88,7 @@ class Handler extends BaseHandler { return; } } - catch (\Exception $ex) { + catch (Exception $ex) { // Ignore the exception and conitue setup. } diff --git a/src/PrepareCommand.php b/src/PrepareCommand.php index 3a0c2d4..19eeea3 100644 --- a/src/PrepareCommand.php +++ b/src/PrepareCommand.php @@ -12,8 +12,10 @@ class PrepareCommand extends BaseCommand { * {@inheritdoc} */ protected function configure() { - $this->setName('lakedrops:dorgflow'); - $this->setDescription('Prepare drupal.org projects for dorgflow utility.'); + parent::configure(); + $this + ->setName('lakedrops:dorgflow') + ->setDescription('Prepare drupal.org projects for dorgflow utility.'); } /** -- GitLab