]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Pretty up the table dumper :D
authorBrion Vibber <brion@pobox.com>
Thu, 7 Oct 2010 22:48:38 +0000 (15:48 -0700)
committerBrion Vibber <brion@pobox.com>
Thu, 7 Oct 2010 22:48:38 +0000 (15:48 -0700)
scripts/dumpschema.php

index 567eadfb2014b8c0da0ec309a04bb1ad22759eb1..5a0fd0bdbbcafcb78bbf863f0c1efbb5cef4bebe 100644 (file)
@@ -27,12 +27,56 @@ END_OF_CHECKSCHEMA_HELP;
 
 require_once INSTALLDIR.'/scripts/commandline.inc';
 
+function indentOptions($indent)
+{
+    $cutoff = 3;
+    if ($indent < $cutoff) {
+        $space = str_repeat(' ', $indent * 4);
+        $sep = ",";
+        $lf = "\n";
+        $endspace = "$lf" . str_repeat(' ', ($indent - 1) * 4);
+    } else {
+        $space = '';
+        $sep = ", ";
+        $lf = '';
+        $endspace = '';
+    }
+    if ($indent - 1 < $cutoff) {
+    }
+    return array($space, $sep, $lf, $endspace);
+}
+
+function prettyDumpArray($arr, $key=null, $indent=0)
+{
+    list($space, $sep, $lf, $endspace) = indentOptions($indent);
+    list($inspace, $insep, $inlf, $inendspace) = indentOptions($indent + 1);
+
+    print "{$space}";
+    if (!is_numeric($key)) {
+        print "'$key' => ";
+    }
+    if (is_array($arr)) {
+        print "array({$inlf}";
+        $n = 0;
+        foreach ($arr as $key => $row) {
+            $n++;
+            prettyDumpArray($row, $key, $indent + 1);
+            if ($n < count($arr)) {
+                print "$insep$inlf";
+            }
+        }
+        // hack!
+        print "{$inendspace})";
+    } else {
+        print var_export($arr, true);
+    }
+}
+
 function dumpTable($tableName)
 {
-    echo "$tableName\n";
     $schema = Schema::get();
     $def = $schema->getTableDef($tableName);
-    var_export($def);
+    prettyDumpArray($def, $tableName);
     echo "\n";
 }