[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