diff --git a/composer.json b/composer.json index 10410f5ec87381a991b94fdb0158ccd04521e8af..bcf0917a504c340b615034270b05dfdacda2972b 100644 --- a/composer.json +++ b/composer.json @@ -32,6 +32,7 @@ "composer-plugin-api": "^1.0.0", "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3", "drupal-code-builder/drupal-code-builder-drush": "^9.0", + "drupal-composer/drupal-scaffold": "^2.3", "drupal/coder": "^8.2", "lakedrops/behat4drupal": "^1.0.0", "lakedrops/composer-scripts": "^1.0.0", diff --git a/src/Plugin.php b/src/Plugin.php index f27a91cee4c7d7a51bd2580612cf4f24ce2121d9..5d9b076f218ac21dc876643255b8b55122533c82 100644 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -8,6 +8,7 @@ use Composer\IO\IOInterface; use Composer\Plugin\PluginInterface; use Composer\Script\Event; use Composer\Script\ScriptEvents; +use DrupalComposer\DrupalScaffold\Handler as DrupalScaffoldHandler; /** * Composer plugin for handling drupal scaffold. @@ -21,11 +22,19 @@ class Plugin implements PluginInterface, EventSubscriberInterface { */ protected $handler; + /** + * The scaffold handler object for events. + * + * @var \DrupalComposer\DrupalScaffold\Handler + */ + protected $scaffoldHandler; + /** * {@inheritdoc} */ public function activate(Composer $composer, IOInterface $io) { $this->handler = new Handler($composer, $io); + $this->scaffoldHandler = new DrupalScaffoldHandler($composer, $io); } /** @@ -34,6 +43,7 @@ class Plugin implements PluginInterface, EventSubscriberInterface { public static function getSubscribedEvents() { return array( ScriptEvents::POST_CREATE_PROJECT_CMD => 'postCreateProject', + ScriptEvents::POST_UPDATE_CMD => 'postUpdate', ); } @@ -44,9 +54,20 @@ class Plugin implements PluginInterface, EventSubscriberInterface { * The event that triggered the plugin. */ public function postCreateProject(Event $event) { + $this->scaffoldHandler->downloadScaffold(); $this->handler->setupLakeDropsProject($event); } + /** + * Post update event callback. + * + * @param \Composer\Script\Event $event + * The event that triggered the plugin. + */ + public function postUpdate(Event $event) { + $this->scaffoldHandler->downloadScaffold(); + } + /** * Callback to setup the project. *