Skip to content
Snippets Groups Projects
Commit 98d5b3d7 authored by jurgenhaas's avatar jurgenhaas
Browse files

#17 Implement default settings for composer.json

parent 38777b90
No related branches found
No related tags found
1 merge request!230Merging develop into main
Pipeline #1255181 skipped
......@@ -9,17 +9,16 @@
],
"allow-plugins": {
"composer/installers": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"cweagans/composer-patches": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"drupal/core-composer-scaffold": true,
"drupal/core-vendor-hardening": true,
"endroid/installer": true,
"bitegra/*": true,
"lakedrops/*": true,
"php-http/discovery": false,
"phpstan/extension-installer": true,
"mxr576/ddqg-composer-audit": true,
"oomphinc/composer-installers-extender": true,
"drupal/core-vendor-hardening": true,
"php-http/discovery": false,
"phpstan/extension-installer": true,
"zodiacmedia/drupal-libraries-installer": true
}
}
......@@ -3,14 +3,12 @@
namespace LakeDrops\DrupalEnvironment;
use Composer\Composer;
use Composer\Config;
use Composer\IO\IOInterface;
use Composer\Plugin\Capability\CommandProvider as ComposerCommandProvider;
use Composer\Script\Event;
use Composer\Script\ScriptEvents;
use Drupal\Composer\Plugin\Scaffold\Handler as DrupalScaffoldHandler;
use LakeDrops\Component\Composer\BasePlugin;
use LakeDrops\Component\Composer\NestedArray;
/**
* Composer plugin for handling drupal scaffold.
......@@ -29,20 +27,21 @@ class Plugin extends BasePlugin {
*/
public function activate(Composer $composer, IOInterface $io): void {
parent::activate($composer, $io);
$this->scaffoldHandler = new DrupalScaffoldHandler($composer, $io);
if (class_exists(DrupalScaffoldHandler::class)) {
$this->scaffoldHandler = new DrupalScaffoldHandler($composer, $io);
}
$extra = $composer->getPackage()->getExtra();
if (isset($extra['lakedrops-config-file']) || isset($extra['lakedrops-curated-file'])) {
$config = $composer->getConfig()->all()['config'] ?? [];
if (isset($extra['lakedrops-config-file'])) {
$defaultConfig = $this->readJson('config', $extra['lakedrops-config-file'], $io);
$config = NestedArray::mergeDeep($defaultConfig, $config);
foreach ($this->readJson('config', $extra['lakedrops-config-file'], $io) as $key => $value) {
$composer->getConfig()->getConfigSource()->addConfigSetting($key, $value);
}
}
if (isset($extra['lakedrops-curated-file'])) {
$config['audit']['ignore'] = $this->readJson('audit ignore', $extra['lakedrops-curated-file'], $io);
$audit = $composer->getConfig()->get('audit');
$audit['ignore'] = $this->readJson('audit ignore', $extra['lakedrops-curated-file'], $io);
$composer->getConfig()->getConfigSource()->addConfigSetting('audit', $audit);
}
$composerConfig = new Config();
$composerConfig->merge(['config' => $config]);
$composer->setConfig($composerConfig);
}
$extras = [
......@@ -120,9 +119,13 @@ class Plugin extends BasePlugin {
*/
protected function readJson(string $type, string $filename, IOInterface $io): array {
$io->write('<info>Gathering ' . $type . ' from patch file.</info>');
$data = file_get_contents($filename);
$data = json_decode($data, TRUE);
$error = json_last_error();
try {
$data = json_decode(file_get_contents($filename), TRUE, 512, JSON_THROW_ON_ERROR);
$error = json_last_error();
}
catch (\JsonException) {
$error = JSON_ERROR_SYNTAX;
}
if ($error !== 0) {
$msg = match ($error) {
JSON_ERROR_DEPTH => ' - Maximum stack depth exceeded',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment