You are here

public function TermDevelGenerate::validateDrushParams in Devel 8.3

Same name and namespace in other branches
  1. 8 devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php \Drupal\devel_generate\Plugin\DevelGenerate\TermDevelGenerate::validateDrushParams()
  2. 8.2 devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php \Drupal\devel_generate\Plugin\DevelGenerate\TermDevelGenerate::validateDrushParams()
  3. 4.x devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php \Drupal\devel_generate\Plugin\DevelGenerate\TermDevelGenerate::validateDrushParams()

Responsible for validating Drush params.

Parameters

array $args: The command arguments.

array $options: The commend options.

Return value

array An array of values ready to be used for generateElements().

Overrides DevelGenerateBaseInterface::validateDrushParams

File

devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php, line 334

Class

TermDevelGenerate
Provides a TermDevelGenerate plugin.

Namespace

Drupal\devel_generate\Plugin\DevelGenerate

Code

public function validateDrushParams(array $args, array $options = []) {
  if ($this
    ->isDrush8()) {
    $bundles = _convert_csv_to_array(drush_get_option('bundles'));
  }
  else {
    $bundles = StringUtils::csvToarray($options['bundles']);
  }
  if (count($bundles) < 1) {
    throw new \Exception(dt('Please provide a vocabulary machine name (--bundles).'));
  }
  foreach ($bundles as $bundle) {

    // Verify that each bundle is a valid vocabulary id.
    if (!$this->vocabularyStorage
      ->load($bundle)) {
      throw new \Exception(dt('Invalid vocabulary machine name: @name', [
        '@name' => $bundle,
      ]));
    }
  }
  $number = array_shift($args);
  if ($number === NULL) {
    $number = 10;
  }
  if (!$this
    ->isNumber($number)) {
    throw new \Exception(dt('Invalid number of terms: @num', [
      '@num' => $number,
    ]));
  }
  $values = [
    'num' => $number,
    'kill' => $this
      ->isDrush8() ? drush_get_option('kill') : $options['kill'],
    'title_length' => 12,
    'vids' => $bundles,
  ];
  $add_language = $this
    ->isDrush8() ? explode(',', drush_get_option('languages', '')) : StringUtils::csvToArray($options['languages']);

  // Intersect with the enabled languages to make sure the language args
  // passed are actually enabled.
  $valid_languages = array_keys($this->languageManager
    ->getLanguages(LanguageInterface::STATE_ALL));
  $values['add_language'] = array_intersect($add_language, $valid_languages);
  $translate_language = $this
    ->isDrush8() ? explode(',', drush_get_option('translations', '')) : StringUtils::csvToArray($options['translations']);
  $values['translate_language'] = array_intersect($translate_language, $valid_languages);
  return $values;
}