From e3cbc41ffa9cb37a9729b95ff0123e1955e4154b Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Mon, 6 Jul 2020 12:56:22 +0200 Subject: [PATCH] Work with the explicit composer.spoon.json file and keep the project's original composer.json untouched Provide a bash script to prepare local environment --- prepareLocally.sh | 9 +++++++++ src/Handler.php | 14 ++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100755 prepareLocally.sh diff --git a/prepareLocally.sh b/prepareLocally.sh new file mode 100755 index 0000000..183effe --- /dev/null +++ b/prepareLocally.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +COMPOSER=composer.spoons.json +export COMPOSER + +composer require --dev lakedrops/drupal-spoons:dev-master composer/installers:^1 +composer drupalspoons:prepare +composer drupalspoons:configure +composer update --dev diff --git a/src/Handler.php b/src/Handler.php index 2fe7d75..4cb2557 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -48,20 +48,26 @@ class Handler { $fs = new Filesystem(); $projectRoot = getcwd(); + $composerJson = getenv('COMPOSER'); + if (empty($composerJson)) { + $this->io->writeError('The environment variable COMPOSER is not set, aborting!'); + return; + } + $composerLock = str_replace('.json', '.lock', $composerJson); + // Append DrupalSpoon related components to composer.json. $content = $this->defaultSettings(); - foreach (['composer.disabled.json', 'composer.json'] as $file) { + foreach ([$composerJson, 'composer.json'] as $file) { $jsonFile = new JsonFile($projectRoot . '/' . $file); if ($jsonFile->exists()) { $content = NestedArray::mergeDeep($content, $jsonFile->read()); - $fs->remove($projectRoot . '/' . $file); } } - $jsonFile = new JsonFile($projectRoot . '/composer.json'); + $jsonFile = new JsonFile($projectRoot . '/' . $composerJson); $jsonFile->write($content); // Add some patterns to .gitignore. - foreach (['/vendor/', '/web/', '.env'] as $item) { + foreach ([$composerJson, $composerLock, '/vendor/', '/web/', '.env'] as $item) { exec('git ignore ' . $item); } } -- GitLab