Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / drush / drush / src / Commands / ExampleCommands.php
diff --git a/vendor/drush/drush/src/Commands/ExampleCommands.php b/vendor/drush/drush/src/Commands/ExampleCommands.php
new file mode 100644 (file)
index 0000000..cdb0ea5
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+namespace Drush\Commands;
+
+/**
+ * @file
+ *   Set up local Drush configuration.
+ */
+
+use Drush\Log\LogLevel;
+use Consolidation\AnnotatedCommand\AnnotationData;
+use Consolidation\OutputFormatters\StructuredData\RowsOfFields;
+use Consolidation\OutputFormatters\Options\FormatterOptions;
+
+use Consolidation\AnnotatedCommand\CommandData;
+
+class ExampleCommands extends DrushCommands
+{
+    /**
+     * Demonstrate output formatters.  Default format is 'table'.
+     *
+     * @command example:table
+     * @field-labels
+     *   first: I
+     *   second: II
+     *   third: III
+     * @default-string-field second
+     * @usage example-table --format=yaml
+     * @usage example-table --format=csv
+     * @usage example-table --fields=first,third
+     * @usage example-table --fields=III,II
+     * @aliases tf
+     * @hidden
+     *
+     * @return \Consolidation\OutputFormatters\StructuredData\RowsOfFields
+     */
+    public function exampleTable($options = ['format' => 'table'])
+    {
+        $tableData = [
+            'en' => [ 'first' => 'One',  'second' => 'Two',  'third' => 'Three' ],
+            'de' => [ 'first' => 'Eins', 'second' => 'Zwei', 'third' => 'Drei'  ],
+            'jp' => [ 'first' => 'Ichi', 'second' => 'Ni',   'third' => 'San'   ],
+            'es' => [ 'first' => 'Uno',  'second' => 'Dos',  'third' => 'Tres'  ],
+        ];
+        $data = new RowsOfFields($tableData);
+
+        // Add a render function to transform cell data when the output
+        // format is a table, or similar.  This allows us to add color
+        // information to the output without modifying the data cells when
+        // using yaml or json output formats.
+        $data->addRendererFunction(
+            // n.b. There is a fourth parameter $rowData that may be added here.
+            function ($key, $cellData, FormatterOptions $options, $rowData) {
+                if ($key == 'first') {
+                    return "<comment>$cellData</>";
+                }
+                return $cellData;
+            }
+        );
+
+        return $data;
+    }
+
+    /**
+     * Demonstrate an alter hook with an option
+     *
+     * @hook alter example-table
+     * @option french Add a row with French numbers.
+     * @usage example-table --french
+     */
+    public function alterFormatters($result, CommandData $commandData)
+    {
+        if ($commandData->input()->getOption('french')) {
+            $result['fr'] = [ 'first' => 'Un',  'second' => 'Deux',  'third' => 'Trois'  ];
+        }
+
+        return $result;
+    }
+}