如何使用额外的命令行参数扩展 Shake?
How to extend Shake with additional command-line arguments?
我正在尝试扩展 Shake 命令行参数,有两个目标:
- 获取额外的标志,例如
--foo
.
- 根据当前工作目录特殊处理非标志参数,因此
go
在根目录中做一件事,在 foobar
目录中做另一件事。
我该怎么做?
扩展Shake命令行有四个相关函数:
shake
is the main entry point to Shake, which takes a ShakeOptions
描述所有选项的结构。如果您想要一个完全自定义的命令行界面,请使用任何命令行解析器来填充这些字段。
shakeArgs
运行s Shake 使用命令行参数填写 ShakeOptions
,因此对于使用 Shake 获取标准命令行非常有用。
shakeArgsWith
将额外选项列表作为其第二个参数,并将如何处理任何非标志参数的逻辑作为其第三个参数。您可以注入新标志,并根据您必须提供的任何其他信息(包括当前目录)修改 go
等非标志的解析方式。
shakeOptDescrs
给出描述对应于 ShakeOptions
. 字段的标志的数据类型
至于它们的关系,shake
是实际的构建系统。 shakeArgsWith
使用来自 shakeOptDescrs
的信息和任何自定义标志来构建和 运行 命令行解析器。 shakeArgs
调用 shakeArgsWith
不使用额外的标志。
在添加标志或自定义非标志行为的特定情况下,shakeArgsWith
就足够了。如果你需要更多的控制,你可以构建你自己的解析器,也许合并在 shakeOptDescrs
中找到的现有标志或不。
我正在尝试扩展 Shake 命令行参数,有两个目标:
- 获取额外的标志,例如
--foo
. - 根据当前工作目录特殊处理非标志参数,因此
go
在根目录中做一件事,在foobar
目录中做另一件事。
我该怎么做?
扩展Shake命令行有四个相关函数:
shake
is the main entry point to Shake, which takes aShakeOptions
描述所有选项的结构。如果您想要一个完全自定义的命令行界面,请使用任何命令行解析器来填充这些字段。shakeArgs
运行s Shake 使用命令行参数填写ShakeOptions
,因此对于使用 Shake 获取标准命令行非常有用。shakeArgsWith
将额外选项列表作为其第二个参数,并将如何处理任何非标志参数的逻辑作为其第三个参数。您可以注入新标志,并根据您必须提供的任何其他信息(包括当前目录)修改go
等非标志的解析方式。shakeOptDescrs
给出描述对应于ShakeOptions
. 字段的标志的数据类型
至于它们的关系,shake
是实际的构建系统。 shakeArgsWith
使用来自 shakeOptDescrs
的信息和任何自定义标志来构建和 运行 命令行解析器。 shakeArgs
调用 shakeArgsWith
不使用额外的标志。
在添加标志或自定义非标志行为的特定情况下,shakeArgsWith
就足够了。如果你需要更多的控制,你可以构建你自己的解析器,也许合并在 shakeOptDescrs
中找到的现有标志或不。