diff --git a/.gitignore b/.gitignore index 7579f74311d35aae05dd0f0a54537ea7a0034e89..b434878cd64fbe65b5b4dfd0fdf9db3f2003ad7b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ vendor +.env composer.lock diff --git a/composer.json b/composer.json index 7a1d210aed4f472787b585699fe41426864738bb..17d0d4e0150686c29f973191f45ff6661a521ed8 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 f34e7b034a41c334a7f3dc150433a3a6fc3dce96..8518e8bf4c38138766ecb57036465e4955ae2ba1 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 bc75eafdc76288b64005837ef965f10a82f9136d..eabba98e0aa4610a358c4b0ec814874d11095dfe 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 3a0c2d40c3f40f55a3a310aed8b2048884e37fd5..19eeea3dabd20a37739354e7b79e7f356a375cfd 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.'); } /**