|
@@ -0,0 +1,110 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace Fgm\Drupal\Composer;
|
|
|
+
|
|
|
+use Composer\Composer;
|
|
|
+use Composer\EventDispatcher\Event;
|
|
|
+use Composer\EventDispatcher\EventSubscriberInterface;
|
|
|
+use Composer\Installer\InstallerEvents;
|
|
|
+use Composer\Installer\PackageEvents;
|
|
|
+use Composer\IO\IOInterface;
|
|
|
+use Composer\Plugin\Capability\CommandProvider;
|
|
|
+use Composer\Plugin\Capable;
|
|
|
+use Composer\Plugin\PluginEvents;
|
|
|
+use Composer\Plugin\PluginInterface;
|
|
|
+use Composer\Script\ScriptEvents;
|
|
|
+use Doctrine\Common\Util\Debug;
|
|
|
+
|
|
|
+class Builder implements Capable, EventSubscriberInterface, PluginInterface {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var IOInterface
|
|
|
+ */
|
|
|
+ protected $io;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Apply plugin modifications to Composer
|
|
|
+ *
|
|
|
+ * @param Composer $composer
|
|
|
+ * @param IOInterface $io
|
|
|
+ */
|
|
|
+ public function activate(Composer $composer, IOInterface $io) {
|
|
|
+ Debug::dump($composer);
|
|
|
+ Debug::dump($io);
|
|
|
+ $this->io = $io;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getCapabilities() {
|
|
|
+ return [
|
|
|
+ CommandProvider::class => Builder::class,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * For CommandProvider::class.
|
|
|
+ */
|
|
|
+ public function getCommands() {
|
|
|
+ echo __METHOD__ . "\n";
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Returns an array of event names this subscriber wants to listen to.
|
|
|
+ *
|
|
|
+ * The array keys are event names and the value can be:
|
|
|
+ *
|
|
|
+ * * The method name to call (priority defaults to 0)
|
|
|
+ * * An array composed of the method name to call and the priority
|
|
|
+ * * An array of arrays composed of the method names to call and respective
|
|
|
+ * priorities, or 0 if unset
|
|
|
+ *
|
|
|
+ * For instance:
|
|
|
+ *
|
|
|
+ * * array('eventName' => 'methodName')
|
|
|
+ * * array('eventName' => array('methodName', $priority))
|
|
|
+ * * array('eventName' => array(array('methodName1', $priority), array('methodName2'))
|
|
|
+ *
|
|
|
+ * @return array The event names to listen to
|
|
|
+ */
|
|
|
+ public static function getSubscribedEvents() {
|
|
|
+ return [
|
|
|
+ InstallerEvents::POST_DEPENDENCIES_SOLVING => 'onEvent',
|
|
|
+ InstallerEvents::PRE_DEPENDENCIES_SOLVING => 'onEvent',
|
|
|
+
|
|
|
+ PackageEvents::POST_PACKAGE_INSTALL => 'onEvent',
|
|
|
+ PackageEvents::POST_PACKAGE_UNINSTALL => 'onEvent',
|
|
|
+ PackageEvents::POST_PACKAGE_UPDATE => 'onEvent',
|
|
|
+ PackageEvents::PRE_PACKAGE_INSTALL => 'onEvent',
|
|
|
+ PackageEvents::PRE_PACKAGE_UNINSTALL => 'onEvent',
|
|
|
+ PackageEvents::PRE_PACKAGE_UPDATE => 'onEvent',
|
|
|
+
|
|
|
+ PluginEvents::COMMAND => 'onEvent',
|
|
|
+ PluginEvents::INIT => 'onEvent',
|
|
|
+ PluginEvents::PRE_FILE_DOWNLOAD => 'onEvent',
|
|
|
+
|
|
|
+ ScriptEvents::POST_ARCHIVE_CMD => 'onEvent',
|
|
|
+ ScriptEvents::POST_AUTOLOAD_DUMP => 'onEvent',
|
|
|
+ ScriptEvents::POST_CREATE_PROJECT_CMD => 'onEvent',
|
|
|
+ ScriptEvents::POST_INSTALL_CMD => 'onEvent',
|
|
|
+ ScriptEvents::POST_PACKAGE_INSTALL => 'onEvent',
|
|
|
+ ScriptEvents::POST_PACKAGE_UNINSTALL => 'onEvent',
|
|
|
+ ScriptEvents::POST_PACKAGE_UPDATE => 'onEvent',
|
|
|
+ ScriptEvents::POST_ROOT_PACKAGE_INSTALL => 'onEvent',
|
|
|
+ ScriptEvents::POST_STATUS_CMD => 'onEvent',
|
|
|
+ ScriptEvents::POST_UPDATE_CMD => 'onEvent',
|
|
|
+ ScriptEvents::PRE_ARCHIVE_CMD => 'onEvent',
|
|
|
+ ScriptEvents::PRE_AUTOLOAD_DUMP => 'onEvent',
|
|
|
+ ScriptEvents::PRE_INSTALL_CMD => 'onEvent',
|
|
|
+ ScriptEvents::PRE_PACKAGE_INSTALL => 'onEvent',
|
|
|
+ ScriptEvents::PRE_PACKAGE_UNINSTALL => 'onEvent',
|
|
|
+ ScriptEvents::PRE_PACKAGE_UPDATE => 'onEvent',
|
|
|
+ ScriptEvents::PRE_STATUS_CMD => 'onEvent',
|
|
|
+ ScriptEvents::PRE_UPDATE_CMD => 'onEvent',
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function onEvent(Event $event) {
|
|
|
+ $this->io->write(Debug::dump($event, 2, false, false));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|