Need formal method of passing options to job descriptions (*.jr)
rfdonnelly opened this issue · comments
Requirements
- Pass options to job descriptions via the command line
- Pass options to job descriptions via the import statement
- Pass options to imports via the command line?
Alternatives
1. Pass inline with jobrnr options
Example:
jobrnr --opt0 dot-jr.jr --opt1 --dot-jr-opt0 --dot-jr-opt1
Call API defined method in dot-jr.jr to add options to OptionParser
. How does this work with import?
Pro: dot-jr options show in --help
.
Con: Not obvious from looking at command line what is a jobrnr option and a dot-jr option.
2. Pass options using a jobrnr option.
Example using --opts
option:
jobrnr --opt0 dot-jr.jr --opt1 --opts '--dot-jr-opt0 --dot-jr-opt1'
Con: Additional typing overhead.
Con: Need for quotes.
3. Pass using different prefix
Example using +
as prefix:
jobrnr --opt0 dot-jr.jr --opt1 ++dot-jr-opt0 ++dot-jr-opt1
Using simplified variation of Alternative 3 similar to Verilog/SystemVerilog plus arguments. They will be referred to as 'plus options'. All job description options are denoted by a single '+' prefix. There is no concept of short plus options. All plus option are long options. Plus options are in the form of +<key>=<value>
. For Boolean plus options the =<value>
portion is optional. If absent, true
is inferred.