Updating Media dependent modules to versions compatible with core Media.
[yaffs-website] / web / modules / contrib / media_entity / src / Commands / DrushCommands.php
diff --git a/web/modules/contrib/media_entity/src/Commands/DrushCommands.php b/web/modules/contrib/media_entity/src/Commands/DrushCommands.php
new file mode 100644 (file)
index 0000000..bf97a85
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+
+namespace Drupal\media_entity\Commands;
+
+use Drush\Commands\DrushCommands as DrushCommandsBase;
+use Drupal\media_entity\CliService;
+
+/**
+ * Add commands for Drush 9.
+ */
+class DrushCommands extends DrushCommandsBase {
+
+  /**
+   * The cli service.
+   *
+   * @var \Drupal\media_entity\CliService
+   */
+  protected $cliService;
+
+  /**
+   * MediaEntityCommands constructor.
+   *
+   * @param \Drupal\media_entity\CliService $cli_service
+   *   The CLI service which allows interoperability.
+   */
+  public function __construct(CliService $cli_service) {
+    $this->cliService = $cli_service;
+  }
+
+  /**
+   * Check upgrade requirements for Media Entity into Media in core.
+   *
+   * @command media_entity:check-upgrade
+   * @usage drush mecu
+   *   Checks upgrade requirements for Media Entity while upgrading to Media in
+   *   core.
+   * @aliases mecu,media-entity-check-upgrade
+   */
+  public function mediaEntityCheckUpgrade() {
+    drush_bootstrap_to_phase(DRUSH_BOOTSTRAP_DRUPAL_FULL);
+    $logger = $this->logger();
+    // This command is useless if the DB updates have already been run.
+    if (drupal_get_installed_schema_version('media_entity') >= 8201) {
+      $logger(dt('Your site has already run the media_entity DB updates. If you believe this is not correct, you should consider rolling back your database to a previous backup and try again.'));
+      return;
+    }
+
+    $checks = $this->cliService->validateDbUpdateRequirements();
+
+    if (empty($checks['errors'])) {
+      $logger->success(sprintf("\033[1;32;40m\033[1m%s\033[0m", '✓') . ' ' . dt('All upgrade requirements are met and you can proceed with the DB updates.'));
+    }
+    else {
+      $logger->error(sprintf("\033[31;40m\033[1m%s\033[0m", '✗') . ' ' . dt('Your site did not pass all upgrade checks. You can find more information in the error messages below.'));
+    }
+    foreach ($checks['passes'] as $pass_msg) {
+      $logger->success($pass_msg);
+    }
+    foreach ($checks['errors'] as $error_msg) {
+      $logger->error($error_msg);
+    }
+  }
+
+}