Security update for Core, with self-updated composer
[yaffs-website] / vendor / drupal / console-core / src / EventSubscriber / RemoveMessagesListener.php
diff --git a/vendor/drupal/console-core/src/EventSubscriber/RemoveMessagesListener.php b/vendor/drupal/console-core/src/EventSubscriber/RemoveMessagesListener.php
new file mode 100644 (file)
index 0000000..8bffea9
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Console\Core\EventSubscriber\RemoveMessagesListener.
+ */
+
+namespace Drupal\Console\Core\EventSubscriber;
+
+use Symfony\Component\Console\ConsoleEvents;
+use Symfony\Component\Console\Event\ConsoleTerminateEvent;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+use Drupal\Console\Core\Command\Command;
+use Drupal\Console\Core\Utils\TranslatorManagerInterface;
+use Drupal\Console\Core\Utils\MessageManager;
+
+/**
+ * Class RemoveMessagesListener
+ *
+ * @package Drupal\Console\Core\EventSubscriber
+ */
+class RemoveMessagesListener implements EventSubscriberInterface
+{
+    /**
+     * @var MessageManager
+     */
+    protected $messageManager;
+
+    /**
+     * ShowGenerateInlineListener constructor.
+     *
+     * @param MessageManager $messageManager
+     */
+    public function __construct(
+        MessageManager $messageManager
+    ) {
+        $this->messageManager = $messageManager;
+    }
+
+    /**
+     * @param ConsoleTerminateEvent $event
+     */
+    public function removeMessages(ConsoleTerminateEvent $event)
+    {
+        if ($event->getExitCode() != 0) {
+            return;
+        }
+
+        /* @var Command $command */
+        $command = $event->getCommand();
+
+        $commandName = $command->getName();
+
+        $this->messageManager->remove($commandName);
+    }
+
+    /**
+     * @{@inheritdoc}
+     */
+    public static function getSubscribedEvents()
+    {
+        return [ConsoleEvents::TERMINATE => 'removeMessages'];
+    }
+}