如何使用其他命令行参数扩展Shake?

时间:2018-07-16 06:44:55

标签: shake-build-system

我正在尝试扩展Shake命令行参数,但要牢记两个目标:

  • 要使用额外的标志,例如--foo
  • 要特别根据当前工作目录来处理非标记参数,因此go在根目录中执行一项操作,而在foobar目录中执行另一项操作。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

有四个相关功能可以扩展Shake命令行:

  • shake是Sha​​ke的主要入口点,它采用ShakeOptions结构描述所有选项。如果要使用完全自定义的命令行界面,请使用任何命令行解析器填充这些字段。
  • shakeArgs使用命令行参数运行Shake填充ShakeOptions,因此对于使用Shake获得标准命令行很有用。
  • shakeArgsWith将一个额外选项的列表作为第二个参数,并将如何处理任何非标记参数的逻辑作为第三个参数。您可以注入新的标志,并根据需要处理的其他任何信息(包括当前目录)修改像go这样的非标志的解析方式。
  • shakeOptDescrs提供了描述与ShakeOptions中的字段相对应的标志的数据类型。

关于它们之间的关系,shake是实际的构建系统。 shakeArgsWith使用来自shakeOptDescrs的信息和任何自定义标志来构建和运行命令行解析器。 shakeArgs不使用其他标志就调用shakeArgsWith

在添加标志或自定义非标志行为的特定情况下,shakeArgsWith就足够了。如果您需要更多控制权,则可以构建自己的解析器,也许可以合并或不合并在shakeOptDescrs中找到的现有标志。