Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / chi-teck / drupal-code-generator / src / Command / Other / DrushCommand.php
diff --git a/vendor/chi-teck/drupal-code-generator/src/Command/Other/DrushCommand.php b/vendor/chi-teck/drupal-code-generator/src/Command/Other/DrushCommand.php
new file mode 100644 (file)
index 0000000..674b2c8
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+
+namespace DrupalCodeGenerator\Command\Other;
+
+use DrupalCodeGenerator\Command\BaseGenerator;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Question\Question;
+
+/**
+ * Implements other:drush-command command.
+ */
+class DrushCommand extends BaseGenerator {
+
+  protected $name = 'other:drush-command';
+  protected $description = 'Generates Drush command';
+  protected $alias = 'drush-command';
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function interact(InputInterface $input, OutputInterface $output) {
+
+    $default_alias = function ($vars) {
+      return substr($vars['command_name'], 0, 3);
+    };
+
+    $default_command_file = function ($vars) {
+      $directoryBaseName = basename($this->directory);
+      // The suggestion depends on whether the command global or local.
+      $prefix = $directoryBaseName == 'drush' || $directoryBaseName == '.drush' ?
+        $vars['command_name'] : $directoryBaseName;
+      return str_replace('-', '_', $prefix) . '.drush.inc';
+    };
+
+    $questions = [
+      'command_name' => new Question('Command name', ''),
+      'alias' => new Question('Command alias', $default_alias),
+      'description' => new Question('Command description', 'Command description.'),
+      'argument' => new Question('Argument name', 'foo'),
+      'option' => new Question('Option name', 'bar'),
+      'command_file' => new Question('Command file', $default_command_file),
+    ];
+
+    $vars = &$this->collectVars($input, $output, $questions);
+
+    list($vars['command_file_prefix']) = explode('.drush.inc', $vars['command_file']);
+
+    // Command callback name pattern gets shorter if command file name matches
+    // command name.
+    $vars['command_callback_suffix'] = $vars['command_file_prefix'] == str_replace('-', '_', $vars['command_name'])
+      ? $vars['command_file_prefix']
+      : $vars['command_file_prefix'] . '_' . $vars['command_name'];
+
+    $this->addFile()
+      ->path('{command_file}')
+      ->template('other/drush-command.twig');
+  }
+
+}