rfdonnelly / jobrnr

Jobrnr runs jobs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.