[jboss-as7-dev] CLI arguments convention
Alexey Loubyansky
alexey.loubyansky at redhat.com
Wed Apr 20 06:30:01 EDT 2011
Thanks, interesting idea.
Alexey
On 04/19/2011 06:51 PM, ssilvert at redhat.com wrote:
> The most usable command line interface I've ever seen is on the
> AS/400. If you need help with a command, you type the command and hit
> the help key. Then you are presented with a form showing all the
> arguments and default values. So the help is right there where you
> need it as you fill out a form for the command.
>
> The AS/400 has the advantage that they have full control over the
> terminal and you can easily lay out these forms when needed. However,
> for our CLI, we could have a "prompt me" mode that prompts for each
> argument, showing default values and explanations along the way.
>
> [localhost:9999 /] promptme deploy
> local file? /foo.war
> server deployable name (foo.war)? my_war_name.war
> runtime name (my_war_name.war)? my_war_runtime.war
> deploy to servergroup1 (yes)?
> deploy to servergroup2 (yes)? no
>
> **result: foo.war was uploaded to domain and deployed to servergroup1
>
> [localhost:9999 /]
>
> Quoting Alexey Loubyansky<alexey.loubyansky at redhat.com>:
>
>>
>> On 04/19/2011 04:29 PM, David M. Lloyd wrote:
>>> On 04/19/2011 08:31 AM, Alexey Loubyansky wrote:
>>>>
>>>> In addition, it's kind of a proprietary convention. We discussed this
>>>> with Max today and I'm looking into the GNU convention for command line
>>>> arguments
>>>
>>> That is a common convention -- for command line arguments. For
>>> interactive command lines (examples I'm thinking of include 3com and
>>> Cisco network management CLIs, as well as commands such as linux's "ip"
>>> command which have widely variable arguments), usually it's more like:
>>>
>>> create-jms-cf name mycf entries foo bar baz
>>
>> Here is the full version
>>
>> [localhost:9999 /] create-jms-cf
>>
>> --help name=
>> auto-group=
>> entries= connector=
>> block-on-acknowledge=
>> block-on-durable-send= block-on-non-durable-send=
>> cache-large-message-client=
>> call-timeout= client-failure-check-period=
>> client-id=
>> confirmation-window-size= connection-ttl=
>> consumer-max-rate=
>> consumer-window-size= discovery-group-name=
>> dups-ok-batch-size=
>> failover-on-initial-connection= failover-on-server-shutdown=
>> group-id=
>> max-retry-interval= min-large-message-size=
>> pre-acknowledge=
>> producer-max-rate= producer-window-size=
>> reconnect-attempts=
>> retry-interval= retry-interval-multiplier=
>> scheduled-thread-pool-max-size=
>> thread-pool-max-size= transaction-batch-size=
>> use-global-pools=
>>
>>
>>> Of course this falls apart for "deploy" unless you do something like this:
>>>
>>> deploy file mything.war as myblah.war runtime-name yourblah.war
>>>
>>> or something (i.e. make it somewhat more fluent and less shell-ish).
>>
>> Ok, so you'd actually prefer a simplicity instead of a standard convention.
>> I'll think about it (and if somebody has suggestions, please, share) but
>> if that doesn't work out we'll have to choose an existing convention.
>>
>>>> And another point is the use of '='. Some command lines don't use it, e.g.
>>>>
>>>> deploy --file my.war --name my_war_name.war --runtime-name
>>>> my_war_runtime_name.war
>>>>
>>>> and some do
>>>>
>>>> deploy --file=my.war --name=my_war_name.war
>>>> --runtime-name=my_war_runtime_name.war
>>>
>>> And some command lines support both :)
>>
>> That's too messy, IMO.
>>
>> Thanks,
>> Alexey
>> _______________________________________________
>> jboss-as7-dev mailing list
>> jboss-as7-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>
>
>
>
>
>
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
More information about the jboss-as7-dev
mailing list