You are here

function drush_multiversion_enable_entity_types in Multiversion 8.2

Same name and namespace in other branches
  1. 8 multiversion.drush.inc \drush_multiversion_enable_entity_types()

Implements drush_hook_COMMAND().

File

./multiversion.drush.inc, line 111

Code

function drush_multiversion_enable_entity_types() {
  $args = pm_parse_arguments(func_get_args());
  if (empty($args)) {
    drush_log(dt('Entity types list argument is missing.'), LogLevel::ERROR);
  }
  elseif ($entity_types = _drush_multiversion_get_entity_types($args)) {
    if (!drush_confirm(dt('Do you really want to continue?'))) {
      return drush_user_abort();
    }
    try {
      $multiversion_settings = \Drupal::configFactory()
        ->getEditable('multiversion.settings');
      $supported_entity_types = $multiversion_settings
        ->get('supported_entity_types') ?: [];
      foreach (array_keys($entity_types) as $id) {
        if (!in_array($id, $supported_entity_types)) {
          $supported_entity_types[] = $id;
        }
      }

      // Add new entity types to the supported entity types list.
      $multiversion_settings
        ->set('supported_entity_types', $supported_entity_types)
        ->save();
      \Drupal::service('multiversion.manager')
        ->enableEntityTypes($entity_types);
    } catch (Exception $e) {
      drush_log($e
        ->getMessage(), LogLevel::ERROR);
    }
  }
}