fix command help text output
authorMichael Wallner <mike@php.net>
Tue, 9 Apr 2019 06:36:27 +0000 (08:36 +0200)
committerMichael Wallner <mike@php.net>
Wed, 4 Sep 2019 07:29:33 +0000 (09:29 +0200)
src/pharext/Cli/Args/Help.php

index e67da9c6b78fcd466bf3a0bac8ca5f732bff5f11..907a40d9aeb6959bec53de071034a7a65e556c95 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace pharext\Cli\Args;
 
+use function array_column;
 use pharext\Cli\Args;
 
 class Help
@@ -79,10 +80,32 @@ class Help
 
                $dump = "";
                if ($req) {
-                       $dump .= sprintf(" [-%s <arg>]", implode("|-", array_column($req, 0)));
+                       $short = array_filter($req, function($a) {
+                               return is_string($a[0]);
+                       });
+                       if ($short) {
+                               $dump .= sprintf(" [-%s <arg>]", implode("|-", array_column($short, 0)));
+                       }
+                       $long = array_filter($req, function($a) {
+                               return !is_string($a[0]);
+                       });
+                       if ($long) {
+                               $dump .= sprintf(" [--%s <arg>]", implode("|--", array_column($long, 1)));
+                       }
                }
                if ($opt) {
-                       $dump .= sprintf(" [-%s [<arg>]]", implode("|-", array_column($opt, 0)));
+                       $short = array_filter($opt, function($a) {
+                               return is_string($a[0]);
+                       });
+                       if ($short) {
+                               $dump .= sprintf(" [-%s [<arg>]]", implode("|-", array_column($short, 0)));
+                       }
+                       $long = array_filter($opt, function($a) {
+                               return !is_string($a[0]);
+                       });
+                       if ($long) {
+                               $dump .= sprintf(" [--%s [<arg>]]", implode("|--", array_column($long, 1)));
+                       }
                }
                return $dump;
        }
@@ -134,7 +157,7 @@ class Help
                foreach ($this->args->getSpec() as $spec) {
                        $dump .= "    ";
                        if (is_numeric($spec[0])) {
-                               $dump .= sprintf("--   %s ", $spec[1]);
+                               $dump .= sprintf("  <%s>  ", $spec[1]);
                        } elseif (isset($spec[0])) {
                                $dump .= sprintf("-%s|", $spec[0]);
                        }