问题标签 [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 投票
1 回答
623 浏览

go - 在命令行解析中引发自定义错误

我正在使用标志模块来解析我的标志,但希望至少有一个位置参数。当没有足够的位置参数时,如何显示使用帮助,就像在 python 中那样parser.error

目前,我正在手动调用os.Exit,但是对于应该是一个简单的错误来说,这感觉真的很麻烦:

0 投票
4 回答
29715 浏览

testing - 在 go test 中处理命令行参数

有没有办法在“测试”中获取命令行参数,
当你调用go test显然你main没有运行时,有没有办法处理命令行参数,

一种方法是使用flags包并检查每个测试或正在测试的函数中的命令行参数,但这并不理想,因为您需要在很多地方执行此操作,这与您只是在main当您运行应用程序时。

有人可能会认为这是错误的做法,并且违反了单元测试的纯洁性:

  1. 并非所有测试都是单元测试
  2. 不依赖“ENV”变量并实际在命令行中将这些东西作为参数传递是非常有用的,

作为记录,我最终init()在我的一个文件中放置了一个函数_test,并设置了在以这种方式调用 main 时通过标志设置的变量。

0 投票
3 回答
14308 浏览

go - 在 GoLang 中定义独立的标志集

Go 文档(http://golang.org/pkg/flag/)说:

FlagSet 类型允许定义独立的标志集,例如在命令行界面中实现子命令。

我需要这个功能,但我不知道如何说服标志 pkg 这样做。当我定义两个 FlagSet 时,如果命令行具有用于第二个的标志,则解析其中一个会给我错误和警告。例子:

cmd -apply如果我尝试执行OR ,我会收到各种警告cmd -reset。我想将这些 FlagSet 分开,因为我只想-silent-apply.

我错过了什么?

0 投票
2 回答
317 浏览

go - 如何引用go-flag IsSet,需要功能代码示例

新手,并且有一个基本的概念问题(我认为)......

尝试使用 github.com/jessevdk/go-flags 并让它大部分工作。--help 和诸如此类的工作正常,正在传递标志等。

我需要了解选项是通过标志还是通过使用提供的默认值的 go-flags 解析器设置的。似乎 go-flags 有一个“IsSet”功能,但我不知道如何引用它。假设:

我可以通过“opts.Port”引用该值,但是如何确定该选项是通过标志还是默认设置的?提前谢谢了!

0 投票
0 回答
81 浏览

go - 全局 go-flag AddCommand 说明和/或示例

在我学习 Go 并尝试使用 package 的早期阶段github.com/jessevdk/go-flags。我检查了另一个线程中引用的 Fly 示例go-flags,但它显然没有使用AddCommand(至少根据我的 grep)。

godoc 文章建议定义一个全局解析器实例,并在单独的文件中实现每个命令。这些命令文件中的每一个都应该定义一个 go init 函数,该函数在全局解析器上调用 AddCommand。

使我的解析器全球化很容易。对init()设置感到困惑:

1)我的理解是init()订单执行是随机的,除了你的 main 的 init 最后运行。

2) 如果是这样,我无法确保NewParser()在我的 AddCommand() 调用之前调用了我的配置代码中的调用。

3) 我的代码可以编译,但是 --help 没有显示任何已定义的命令,这让我认为确实,在 /* 只是猜测 */AddCommand()之前调用了NewParser()

4) QED 我很困惑!

有人有推荐的例子我可以学习吗?

0 投票
1 回答
1366 浏览

go - 检查是否设置了所有标志(没有标志空白)

如何确保从命令行设置每个标志参数?我想在不专门检查每个标志名称的情况下执行此操作,而是希望动态检查所有标志。

这是我的代码,main.go

例如,我像这样运行它:go run main.go -x hello

0 投票
2 回答
4104 浏览

go - Golang flag:忽略丢失的标志并解析多个重复的标志

我是 Golang 的新手,我一直无法使用 flag 找到解决此问题的方法。

如何使用标志,以便我的程序可以处理这样的调用,其中 -term 标志可能出现可变次数,包括 0 次:

0 投票
0 回答
3133 浏览

go - flag.FlagSet.String 返回 `flag 需要一个参数:`

cmd是结构实例的一个实例,*Command其形式为:

我遇到的问题是:

正在返回一个err内容为:flag needs an argument: -list当我运行我的程序时。这是我设置标志的方式:

遵循此处的文档。我很困惑,因为标志命令行语法提到这些形式中的任何一种都可以工作:

当我使用另一个参数运行我的可执行文件时(即:./myexecutable blah -list garbage我的标志按预期工作。我试图理解为什么标志包的源代码892行被我的设置触发。

我是围棋新手,所以我可能在这里遗漏了一些非常明显的东西。提前致谢!

0 投票
1 回答
578 浏览

go - 如何仅在 go-flag 包中显示当前设置?

我有一个项目使用包标志来读取 argv(参数),当没有给出参数时它会打印默认设置:

执行结果如下:

但是当我的代码包含其他包时glog,该PrintDefaults函数将显示更多设置,包括glog标志:

我需要的唯一两个设置是-F-V,如何删除其他设置?

0 投票
1 回答
707 浏览

go - value returned by flags into my struct

How can I assign the string value returned by flag into my struct? I have the following code.

Database is a string