Reputation: 8893
I'm building a CLI which can call other underlying programs, that have their own options and arguments. I'd like to be able to pass those options to a program through the CLI.
$ cli --program [PROGRAM] --programOpts[OPT1, OPT2, ...]
Example:
$ cli --program foo --programOpts.bar 'foo' --programOpts.foo 'bar'
^ In this case bar
and foo
in programOpts
are unknown to cli
. The CLI only knows about programOpts
and that it's an unknown vector of options specific to the underlying program that's being called.
I was hoping Clap had an API to implement such a thing (looked into Arg
and ArgGroup
) but it doesn't seem like it.
Is there such an API?
Upvotes: 1
Views: 295
Reputation: 8893
After further research I decided to go down a slightly different path and rather take advantage of the known UNIX --
syntax.
Meaning that all options and flags coming after --
will be passed down to the underlying program:
$ cli --program [PROGRAM] -- foo bar --bazinga --yay=w00t
This can be done using Clap's .raw()
configuration on Arg structs.
Upvotes: 1