From cd81df9ffcfe5af24c098a49b76721439bb5cf40 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Thu, 3 Sep 2015 13:25:10 +0200 Subject: [PATCH] improve help output --- bin/pharext | Bin 91393 -> 85340 bytes bin/pharext.update | Bin 91407 -> 85354 bytes src/pharext/Cli/Args/Help.php | 39 ++++++++++++++++----------- tests/src/pharext/CliCommandTest.php | 2 +- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/bin/pharext b/bin/pharext index 62ee132e705ef2a2da1b85a4e3eeae441dbf8c2b..85be95c57424dd4d6cd79e979424bc27e78f1af1 100755 GIT binary patch delta 2187 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 CoS!2A diff --git a/bin/pharext.update b/bin/pharext.update index f419b46da9c30040a56b99d5ffc5e9514ec9bde9..1a662842c9bd89fca82b38fd63a194713cff4145 100755 GIT binary patch delta 2228 zcma)6du)?c6#s4?+xl4hb*x)k_V`xH*0Kl1vTkg+wL>5k7EqYN+A#|2wz96PZ3hCI zfH8nX0X^!cgAEWNYD6Gkq`@#JL;?e3B$6m`5WyENf&m|h8uZ@#@lq3G|LD2*cYf!0 z&pG#=Z_^3+NRND9NGkVe7{(?%AuULPmvyZAjpEC7tx|^JPW-k6DpeLK24In@j5-d> z7$*Ol*(TVp8wCSOk)4GF4u)Pj0Y_L1WyNuLUwHEKkcU}Ul^QnRz%WFY*k7CSKcwNW zD#UO@4#P|=KI;LudYqoHe$_F|mnk>T96${HjfU0gbkq16e=NATB+?pLAs5w%y-|4f z5S`{V4~^SdIeA@Sgj~a}0E;b_#S$ zFz~~|`EXusr9d49){V>Ai~%E@N!3y?f(!J%`S~eWlWK&0S{aC!VF*`Yqsew_%+Qmnqk40(vpe(T_i##E zK%Kv6OR0m!2d%#v^WiAd=vIGpPP}sw>CHDdGtxt1=XdSd0)^T_8t@ecHh3?bgxXZG zupBHs=viHZ6^tO$h{?2L){o2Ia}inS(rW3M8@1*v_u_bPsXrbdXAG;vGl=y-mVtI* zn?}rdE0zu1jQ3!LbU3civ4d)nO>E1&f?W7c!LizG5hS)c-1`d{m1Ed8g$NSc^o)Om zUSXqB&8A^ZQWUXg+ZTRJySqW1Mhol57vxBc(ZVhj$DYa)nZ(*9(#cdJS0xq)IQ**Y z`cwjDjjxL|;d-K^APauLM4#B>yLP&${zj#!zZk#5y0t?qF*ugC!=o!sC+tPIS63hV zWa!Sd?rV|qf6hcHFgQ;qoQ1|D;rmvrhOb3Pm3Zd?)Fy?-W$XDhPNaw5mu=*~b|N#p z{iKFBm7!bk&T=1F6vDT?8mL+^L)`3N5he?hvbJvKTu;}OP|yb#dreTk@ureYp z9`ADVGt1EexZY(Ti&~h|Jw{v%bQkh_C!u7%dJ?LJGp{FuJe!?MxQ3 zR~4{=G%X`XxNz)-4$dDNFO(nJrAnMGLdWEMeG!U->q@S0X=J&CUzLZFh0T|zOW?{p zJq-Pk#4kaJ6|Vg}UCPfwxWd{)DkwRwzUxYyQ=qLy_P8>VVMLpx}167I+n-KNg=2o^S*2^ehVtk7DT12;>@8F3v&oZV)l=Xc-sk~|<( zYEpZP$HqACWPh}!ssW_VF>=a<9i=vy>I}g_2MdO>40V;ch_ggGV%`Z2HkeQ`8XC(~ z?Bubrs)qX=BhDN!RAvxo8g-VGl-%>fnz9?h+VVZgN*`$s7Yl@%;bLQ^FvpcCMLuE4 zl;`wHWoInF&Bh>&;8AoSu=nPZIWh6Wc-w^lTb{bgFS4GCh4ugG@#4#k(TfS{B z89X~2+%{1}_1ou*ye-=w78hwds_zA?+fhu>gsvR5A;GotmIV2rYPSa`zi#)_dcnQv z6&bH^B2GOg5}Fna1w7&Aj!NEzkReg$M8{K1mi9p0kMGhF!EGq6Y6-+^F@QgC{zOJK z8ZY5DyODlXpot^?z>{%qX&@TIPmybmcC>Q^V`Bweyn|X_*j$7!ToH`L0&y$V^_p+9 z%?&oLn)@flRd8l&XSglgu`Fy8ga4g|)#f!T@5z8a*O2hK(JcgRhYiBomKi89e+sHj j%1S?)^677F{q3@;dyX``7Ps_+dUEx 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 Z*tHw_uYX$%t^doX@I$$!b=jI_{{?+rCSCvl diff --git a/src/pharext/Cli/Args/Help.php b/src/pharext/Cli/Args/Help.php index 50883b1..4284dbb 100644 --- a/src/pharext/Cli/Args/Help.php +++ b/src/pharext/Cli/Args/Help.php @@ -44,12 +44,10 @@ class Help foreach ($this->args->getSpec() as $spec) { if (is_numeric($spec[0])) { $positional[] = $spec; - } elseif ($spec[3] & Args::REQARG) { - if ($spec[3] & Args::REQUIRED) { - $required[] = $spec; - } else { - $optional[] = $spec; - } + } elseif ($spec[3] & Args::REQUIRED) { + $required[] = $spec; + } elseif ($spec[3] & (Args::OPTARG|Args::REQARG)) { + $optional[] = $spec; } else { $flags[] = $spec; } @@ -72,21 +70,33 @@ class Help } function dumpOptional(array $optional) { - return sprintf(" [-%s ]", implode("|-", array_column($optional, 0))); + $req = array_filter($optional, function($a) { + return $a[3] & Args::REQARG; + }); + $opt = array_filter($optional, function($a) { + return $a[3] & Args::OPTARG; + }); + + $dump = ""; + if ($req) { + $dump .= sprintf(" [-%s ]", implode("|-", array_column($req, 0))); + } + if ($opt) { + $dump .= sprintf(" [-%s []]", implode("|-", array_column($opt, 0))); + } + return $dump; } function dumpPositional(array $positional) { $dump = " [--]"; foreach ($positional as $pos) { - if ($pos[3] & Args::MULTI) { - $multi = " ..."; - } else { - $multi = ""; - } if ($pos[3] & Args::REQUIRED) { - $dump .= sprintf(" <%s%s>", $pos[1], $multi); + $dump .= sprintf(" <%s>", $pos[1]); } else { - $dump .= sprintf(" [%s%s]", $pos[1], $multi); + $dump .= sprintf(" [<%s>]", $pos[1]); + } + if ($pos[3] & Args::MULTI) { + $dump .= sprintf(" [<%s>]...", $pos[1]); } } return $dump; @@ -101,7 +111,6 @@ class Help function dumpHelp() { $max = $this->calcMaxLen(); - $parg = ""; $dump = ""; foreach ($this->args->getSpec() as $spec) { $dump .= " "; diff --git a/tests/src/pharext/CliCommandTest.php b/tests/src/pharext/CliCommandTest.php index e4f80a9..f8f4da4 100644 --- a/tests/src/pharext/CliCommandTest.php +++ b/tests/src/pharext/CliCommandTest.php @@ -42,7 +42,7 @@ class CliCommandTest extends \PHPUnit_Framework_TestCase $this->expectOutputString(<<] + $ testprog [-hvq] [-p|-n|-c ] [-s []] -h|--help Display help -v|--verbose More output -- 2.30.2