Version 1
[yaffs-website] / vendor / drupal / console-core / src / EventSubscriber / ShowGeneratedFilesListener.php
diff --git a/vendor/drupal/console-core/src/EventSubscriber/ShowGeneratedFilesListener.php b/vendor/drupal/console-core/src/EventSubscriber/ShowGeneratedFilesListener.php
new file mode 100644 (file)
index 0000000..b0acc71
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Console\Core\EventSubscriber\ShowGeneratedFilesListener.
+ */
+
+namespace Drupal\Console\Core\EventSubscriber;
+
+use Symfony\Component\Console\ConsoleEvents;
+use Symfony\Component\Console\Event\ConsoleTerminateEvent;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+use Symfony\Component\Console\Command\Command;
+use Drupal\Console\Core\Style\DrupalStyle;
+use Drupal\Console\Core\Utils\FileQueue;
+use Drupal\Console\Core\Utils\ShowFile;
+
+/**
+ * Class ShowGeneratedFilesListener
+ * @package Drupal\Console\Core\EventSubscriber
+ */
+class ShowGeneratedFilesListener implements EventSubscriberInterface
+{
+    /**
+     * @var FileQueue
+     */
+    protected $fileQueue;
+
+    /**
+     * @var ShowFile
+     */
+    protected $showFile;
+
+    /**
+     * ShowGeneratedFilesListener constructor.
+     * @param FileQueue $fileQueue
+     * @param ShowFile  $showFile
+     */
+    public function __construct(FileQueue $fileQueue, ShowFile $showFile)
+    {
+        $this->fileQueue = $fileQueue;
+        $this->showFile = $showFile;
+    }
+
+    /**
+     * @param ConsoleTerminateEvent $event
+     */
+    public function showGeneratedFiles(ConsoleTerminateEvent $event)
+    {
+        /* @var Command $command */
+        $command = $event->getCommand();
+        /* @var DrupalStyle $io */
+        $io = new DrupalStyle($event->getInput(), $event->getOutput());
+
+        if ($event->getExitCode() != 0) {
+            return;
+        }
+
+        if ('self-update' == $command->getName()) {
+            return;
+        }
+
+        $files = $this->fileQueue->getFiles();
+        if ($files) {
+            $this->showFile->generatedFiles($io, $files, false);
+        }
+    }
+
+    /**
+     * @{@inheritdoc}
+     */
+    public static function getSubscribedEvents()
+    {
+        return [ConsoleEvents::TERMINATE => 'showGeneratedFiles'];
+    }
+}