问题标签 [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.

0 投票
0 回答
148 浏览

go - 使用 go-flags 添加多个命令

使用jessevdk/go-flags,我想获得以下使用命令:

我能够获得正确的选项,但我无法添加命令。我看到我可以使用 AddCommand 但我无法生成我的强制和可选命令。

我试过这个:

我缺少什么来获取带有可选子命令的命令?

0 投票
1 回答
1639 浏览

go - 如何仅提取在 cli 中明确设置的标志集?

我是眼镜蛇毒蛇的新手。

我想知道是否有办法从 cli 中排除用户未设置的标志值。所以我的问题是,我的眼镜蛇cmd中有一些具有默认值的可选标志。我想知道如果用户没有设置这些可选标志,是否有办法排除它们被处理?或者从另一个角度来看,有没有办法从标志集中提取用户从 cli 显式更改的标志cmd

这是一个更好地说明我的案例的示例:

因此,假设对于年龄和地址,我希望它们是可选的,并且在传递给 struct 时不传播。所以这意味着,在 cli 中,用户不需要提交ageandaddress标志,这些可选标志的默认值为 nil。但是,Int 和 String 标志是强类型的,因此它们需要默认值(例如:""-1)。结果,当我将命令 pflags 绑定到 viper 并且用户不在 cli 中输入年龄和地址值时,viper 将接收""地址和-1年龄。使用上述方法,默认值将传播到 User 结构。

我想要的是排除用户未设置的标志值。有没有办法让我从接收用户未明确设置的标志值中排除用户结构?

我目前排除未设置标志在 User 结构中处理的解决方案目前是这样的:

  1. 有一个命令标志数组。初始化一个空map[string]interface{}
  2. 遍历数组,并检查标志是否通过flags.Changed("flag"). 如果标志被更改,则将其添加到地图
  3. 将地图转换为 json
  4. 将 json 对象解组为结构

    /li>

但我想知道是否有比我上面的解决方案更好的选择。最好,我不想更改User结构中的任何内容,因为它是从外部包导入的。

谢谢你。非常感谢您的帮助。

0 投票
1 回答
134 浏览

regex - 如何在 golang 中打开所有格式为“test*.txt”的文件

如果我将标志(在 golang 中)作为“test*.txt”(作为 CLI 参数),我需要打开上述格式的所有文件(例如:test.txt、test1.txt、test2.txt)。

我正在考虑对文件夹中存在的所有文件进行正则表达式匹配。有没有更好的办法?

0 投票
1 回答
49 浏览

go - 如何让 Go Flag 包接受形式为 --telemetry.addr 的标志名称

我需要编写一段代码来接受参数“--telemetry.addr=8080”和“--telemetry.path=/metrics”,具体格式如下。

我的代码:

给我输出:

无论我对 flag.String 行做什么,我似乎都无法欺骗它接受以“--”开头的东西

0 投票
1 回答
57 浏览

go - 重新定义标志:两个组件可以具有相同的标志变量

我有一个包含 5 个容器的部署。其中两个具有--endpoint作为参数设置的值ENV

所以我在部署后看到这个错误

构建容器 A 的代码有

也 构建容器 B 的代码也有

endpoint在上述错误的代码原因中定义了相同的 var 。

我试过更改文件中arg的名称deployment。和其他没有帮助的选项。但是在代码中更改flag名称解决了这个问题,但需要了解更多关于工作的信息。所以发布了这个问题

0 投票
2 回答
207 浏览

go - 在 Golang 指令的标志值中使用空格

使用指令时如何在标志值中获取空格?

语境

包接收和/或处理带有空格的flag标志,具体取决于调用 Go 的方式。引用标志可以从命令行使用,但不能使用指令,例如go generate, 例如。

换句话说,从命令行调用,Flag1将收到正确的值(即,4 个字,3 个空格)。

作品

不工作

但是,在指令文件中调用完全相同的命令,例如 with go generate ./...Flag1将不会收到正确的值。获取一个包含以下行的指令文件(例如,generate.go):

Flag1设置不正确,Flag2根本没有设置。

0 投票
2 回答
73 浏览

function - Golang 使用标志执行函数

如何通过输入一个标志来执行特定的功能,例如,我有三个标志:

并且在执行单个时,调用的函数被执行:

执行该标志时,仅执行 word 函数:

但是,当我执行最后一个标志时,所有功能都被执行

你知道为什么吗?