问题标签 [go-flag]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 使用 go-flags 添加多个命令
使用jessevdk/go-flags
,我想获得以下使用命令:
我能够获得正确的选项,但我无法添加命令。我看到我可以使用 AddCommand 但我无法生成我的强制和可选命令。
我试过这个:
我缺少什么来获取带有可选子命令的命令?
go - 如何仅提取在 cli 中明确设置的标志集?
我想知道是否有办法从 cli 中排除用户未设置的标志值。所以我的问题是,我的眼镜蛇cmd
中有一些具有默认值的可选标志。我想知道如果用户没有设置这些可选标志,是否有办法排除它们被处理?或者从另一个角度来看,有没有办法从标志集中提取用户从 cli 显式更改的标志cmd
?
这是一个更好地说明我的案例的示例:
因此,假设对于年龄和地址,我希望它们是可选的,并且在传递给 struct 时不传播。所以这意味着,在 cli 中,用户不需要提交age
andaddress
标志,这些可选标志的默认值为 nil。但是,Int 和 String 标志是强类型的,因此它们需要默认值(例如:""
和-1
)。结果,当我将命令 pflags 绑定到 viper 并且用户不在 cli 中输入年龄和地址值时,viper 将接收""
地址和-1
年龄。使用上述方法,默认值将传播到 User 结构。
我想要的是排除用户未设置的标志值。有没有办法让我从接收用户未明确设置的标志值中排除用户结构?
我目前排除未设置标志在 User 结构中处理的解决方案目前是这样的:
- 有一个命令标志数组。初始化一个空
map[string]interface{}
- 遍历数组,并检查标志是否通过
flags.Changed("flag")
. 如果标志被更改,则将其添加到地图 - 将地图转换为 json
将 json 对象解组为结构
/li>
但我想知道是否有比我上面的解决方案更好的选择。最好,我不想更改User
结构中的任何内容,因为它是从外部包导入的。
谢谢你。非常感谢您的帮助。
regex - 如何在 golang 中打开所有格式为“test*.txt”的文件
如果我将标志(在 golang 中)作为“test*.txt”(作为 CLI 参数),我需要打开上述格式的所有文件(例如:test.txt、test1.txt、test2.txt)。
我正在考虑对文件夹中存在的所有文件进行正则表达式匹配。有没有更好的办法?
go - 如何让 Go Flag 包接受形式为 --telemetry.addr 的标志名称
我需要编写一段代码来接受参数“--telemetry.addr=8080”和“--telemetry.path=/metrics”,具体格式如下。
我的代码:
给我输出:
无论我对 flag.String 行做什么,我似乎都无法欺骗它接受以“--”开头的东西
go - 重新定义标志:两个组件可以具有相同的标志变量
我有一个包含 5 个容器的部署。其中两个具有--endpoint
作为参数设置的值ENV
所以我在部署后看到这个错误
构建容器 A 的代码有
也 构建容器 B 的代码也有
endpoint
在上述错误的代码原因中定义了相同的 var 。
我试过更改文件中arg
的名称deployment
。和其他没有帮助的选项。但是在代码中更改flag
名称解决了这个问题,但需要了解更多关于工作的信息。所以发布了这个问题
go - 在 Golang 指令的标志值中使用空格
使用指令时如何在标志值中获取空格?
语境
包接收和/或处理带有空格的flag
标志,具体取决于调用 Go 的方式。引用标志值可以从命令行使用,但不能使用指令,例如go generate
, 例如。
换句话说,从命令行调用,Flag1
将收到正确的值(即,4 个字,3 个空格)。
作品
不工作
但是,在指令文件中调用完全相同的命令,例如 with go generate ./...
,Flag1
将不会收到正确的值。获取一个包含以下行的指令文件(例如,generate.go
):
Flag1
设置不正确,Flag2
根本没有设置。
function - Golang 使用标志执行函数
如何通过输入一个标志来执行特定的功能,例如,我有三个标志:
并且在执行单个时,调用的函数被执行:
执行该标志时,仅执行 word 函数:
但是,当我执行最后一个标志时,所有功能都被执行
你知道为什么吗?