[ 
https://issues.apache.org/jira/browse/HDDS-379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16597949#comment-16597949
 ] 

Anu Engineer commented on HDDS-379:
-----------------------------------

I do agree that there seems to be a case where some people have used in as if 
there are separate words.

But the general usage pattern seems to be -- subcommand.
https://en.wiktionary.org/wiki/subcommand

>From golang usage
https://github.com/google/subcommands

>From Javascript
https://www.npmjs.com/package/subcommand

some more dict links
http://www.yourdictionary.com/subcommand

There are some usage cases like python -- which in the same page use both 
sub-commands and subcommands.
https://docs.python.org/3/library/argparse.html

I did look at these and I think the general convention -- these days seems to 
favor subcommand, instead of sub-command or subCommand. It is almost like 
subcommand is becoming an accepted word.






> Simplify and improve the cli arg parsing of ozone scmcli
> --------------------------------------------------------
>
>                 Key: HDDS-379
>                 URL: https://issues.apache.org/jira/browse/HDDS-379
>             Project: Hadoop Distributed Data Store
>          Issue Type: Improvement
>            Reporter: Elek, Marton
>            Assignee: Elek, Marton
>            Priority: Major
>             Fix For: 0.2.1
>
>         Attachments: HDDS-379.001.patch, HDDS-379.002.patch, 
> HDDS-379.003.patch
>
>
> SCMCLI is a useful tool to test SCM. It can create/delete/close/list 
> containers.
> There are multiple problems with the current scmcli.
> The biggest one is the cli argument handling. Similar to HDDS-190, it's often 
> very hard to get the help for a specific subcommand.
> The other one is that a big part of the code is the argument handling which 
> is mixed with the business logic.
> I propose to use a more modern argument handler library and simplify the 
> argument handling (and improve the user experience).
> I propose to use [picocli|https://github.com/remkop/picocli].
> 1.) It supports subcommands and subcommand specific and general arguments.
> 2.) It could work based on annotation with very few additional boilerplate 
> code
> 3.) It's very well documented and easy to use
> 4.) It's licenced under Apache licence
> 5.) It supports tab autocompletion for bash and zsh and colorful output
> 6.) Actively maintainer project
> 7.) Adopter by other bigger projects (groovy, junit, log4j)
> In this patch I would like to demonstrate how the cli handling could be 
> simplified. And if it's accepted, we can start to use similar approach for 
> other ozone cli as well.
> The patch also fixes the cli (the name of the main class was wrong). 
> It also requires HDDS-377 for the be compiled.
> I also deleted the TestSCMCli. It was turned off with an annotation and I 
> believe that this functionality could be tested more easily with a robot test.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to