是否可以使用 Clap 配置未知大小的参数组?

Is it possible to configure argument groups of unknown size with Clap?

我正在构建一个 CLI,它可以调用其他具有自己的选项和参数的底层程序。我希望能够通过 CLI 将这些选项传递给程序。

$ cli --program [PROGRAM] --programOpts[OPT1, OPT2, ...]

示例:

$ cli --program foo --programOpts.bar 'foo' --programOpts.foo 'bar'

^ 在这种情况下,programOpts 中的 barfoocli 是未知的。 CLI 只知道 programOpts 并且它是特定于正在调用的基础程序的未知选项向量。

我希望 Clap 有一个 API 来实现这样的事情(研究了 ArgArgGroup)但它看起来不像。

有这样的API吗?

经过进一步研究,我决定走一条稍微不同的道路,而是利用已知的 UNIX -- 语法。

意味着 -- 之后的所有选项和标志都将传递给基础程序:

$ cli --program [PROGRAM] -- foo bar --bazinga --yay=w00t

这可以在 Arg 结构上使用 Clap 的 .raw() 配置来完成。