Version 1
[yaffs-website] / vendor / drush / drush / commands / core / outputformat / variables.inc
diff --git a/vendor/drush/drush/commands/core/outputformat/variables.inc b/vendor/drush/drush/commands/core/outputformat/variables.inc
new file mode 100644 (file)
index 0000000..7220aab
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Output formatter 'variables'
+ *
+ * @param $data
+ *   The $data parameter is expected to be a nested array of key / value pairs.
+ *   The top-level key becomes the variable name, $metadata['variable-name'],
+ *   and the key on the inner-level items becomes the array label,
+ *   $metadata['label'].  These items are then rendered by the 'var_export' formatter.
+ * @param $metadata
+ *   Unused.
+ *
+ * Code:
+ *
+ *   return array(
+ *     "a" => array("b" => 2, "c" => 3),
+ *     "d" => array("e" => 5, "f" => 6)
+ *   );
+ *
+ * Output with --format=variables:
+ *
+ *   $a['b'] = 2;
+ *   $a['c'] = 3;
+ *   $d['e'] = 5;
+ *   $d['f'] = 6;
+ */
+class drush_outputformat_variables extends drush_outputformat {
+  function validate() {
+    $metadata = $this->engine_config;
+    $this->sub_engine = drush_load_engine('outputformat', 'var_export', $metadata);
+    if (!is_object($this->sub_engine)) {
+      return FALSE;
+    }
+    return TRUE;
+  }
+
+  function format($data, $metadata) {
+    $output = '';
+    if (is_array($data)) {
+      foreach ($data as $variable_name => $section) {
+        foreach ($section as $label => $value) {
+          $metameta = array(
+            'variable-name' => $variable_name,
+            'label' => $label,
+          );
+          $formatted_item = $this->sub_engine->process($value, $metameta);
+          if ($formatted_item === FALSE) {
+            return FALSE;
+          }
+          $output .= $formatted_item;
+          $output .= "\n";
+          }
+      }
+    }
+    return $output;
+  }
+}