|
EMBOSS: C2 Command Line Syntax
|
The command line offers great flexibility.
Issues:
- Is it too flexible?
The flexibility is useful, but should be hidden from most users.
- All applications have a "-help" option which display the full
command line syntax.
-
Any values prompted for are "Required"
-
A command line switch "-option" makes the "optiional parameters"
required.
-
There are other options which are never prompted. To make the users feel good
about discovering them, we call these "advanced".
- Error messages need to be carefully designed to indicate problems
with the command line syntax. Some more work is stil needed on these.
- Each new data type in the ACD file adds new qualifiers. For
sequences these start "-s", for output sequences they start
"-os".
- Some data types (e.g. sequences) generate "associated
qualifiers". Like VMS command line syntax, these are positional. If
they follow a seuqnece (for example) they apply only to that sequence.
At the start of the command line, or anywhere else, they refer to all
sequences.
- There are switches using variables and command line switches
to control the use of standard input and standard output. These are:
- -filter
- Runs as a Unix filter, reading by default from stdin and writing
by default to stdout. As stdin is used for input, there are no prompts
to the user.
- -stdout
- Uses stdout as the default for output. stdin is available so the user
is prompted, even for the output file.
- -auto
- Like -default on VMS, no prompts to the user and all unspecified
values must have acceptable defaults for the application to run.
- There are problems with placeholders for datatypes with associated
qualifiers - to allow the user to accept the default for a parameter
or qualifiers but still specify position-sensitive values. For
example, stdin for sequence input with "-sformat" specified for that
sequence only.
- Possibly "." can be used as a placeholder. If a directory name is
needed, it would have to be "./" if it did not default to the current
directory. No solution seems ideal. In VMS the first parameter is
required if the second is to be specified.
- A recommendation to use qualifiers for all parameters and to
number all associated qualifiers would work around this. Any parameter
can be specified as a qualifier instead.
- "--" may be required to terminate qualifiers and allow parameters
starting with "-" or "/" but so far we have not found a need to
implement this.