问题标签 [viper-go]

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 投票
3 回答
2361 浏览

go - golang:如何将 pflag 与其他使用 flag 的包一起使用?

如何在使用 pflag 的同时使用其他使用 flag 的包?

其中一些包为 flag 包定义了标志(例如在它们的 init 函数中) - 并且需要调用 flag.Parse()。

使用 pflag 包定义标志,需要调用 pflag.Parse()。

当参数混合时,对 flag.Parse() 和 pflag.Parse() 的调用之一将失败。

如何将 pflag 与其他使用标志的软件包一起使用?

0 投票
0 回答
3048 浏览

go - 使用 Viper 初始化新的 Go 配置

我一直在使用viper 包探索 Go 中的配置管理,这是我在另一个问题中了解到的。我无法理解如何初始化新配置。我想做的是找到系统配置(如果存在),然后是用户配置,然后,如果一切都失败了,则从默认值创建(然后使用)新的用户配置。下次我运行该应用程序时,我希望找到我之前创建的配置。我这样使用它:

在这一点上,我想为我创建 ~/.myapp/test.json 并使用以下内容:

结果是该文件为空,并且第二次尝试读取该文件也失败并显示消息“打开:没有这样的文件或目录”,即使它存在。如果我手动编辑文件,Viper 会找到并解析它。显然我可以以编程方式创建 JSON 文件,但这似乎是一个如此明显的用例,我必须在这里遗漏一些东西。

0 投票
1 回答
8671 浏览

go - 使用 Viper 在 Go 中将字符串映射作为环境变量传递

对于我正在处理的项目,我正在尝试使用 Viper 将 stings 映射作为环境变量传递。我尝试了几种方法来实现这一点,但没有成功。当我从代码中读取 env 变量时,它是空的。这是我正在使用的代码:

这就是我传递价值的方式:

CONFIG_OPTIONS_VALUES_ROOT="。"

我也试过:

CONFIG_OPTIONS_VALUES="{\"root\": \".\",\"cmd\": \"exec\", \"logging\": \"on\"}"

我想要处理传递到 env 变量中的值的方式是:

如果我将此配置写入配置文件并使用 viper 读取它,我可以完美地做到这一点:

希望有人可以在这里为我指明正确的方向。

0 投票
2 回答
2143 浏览

json - 将 JSON 对象数组转换为 YAML

我有以下需要转换为 YAML 的 json

我使用在线 JSON 到 YAML 转换器,它给出了以下输出,

当我尝试将相同的生成 YAML从在线服务转换回 json时,它会给出“无法解析”异常。

1.) 在 YAML 中表示上述类型的 json 的正确方法是什么?

我想在我的 golang 程序中阅读这种 YAML。为此,我正在使用 spf13/viper 库,但我找不到任何能够解码这个数组对象之王的方法。

2.) 如何使用 viper 在 golang 中读取这种 YAML?示例代码会有所帮助。

0 投票
2 回答
9301 浏览

go - Cobra + Viper Golang How to test subcommands?

I am developing an web app with Go. So far so good, but now I am integrating Wercker as a CI tool and started caring about testing. But my app relies heavily on Cobra/Viper configuration/flags/environment_variables scheme, and I do not know how to properly init Viper values before running my test suite. Any help would be much appreciated.

0 投票
1 回答
3288 浏览

go - viper yaml 配置序列

我正在尝试使用 viper 读取 yaml 配置文件(请参阅 viper 文档)。但是我看不到在问题类型下读取地图值序列的方法。我尝试了各种 Get_ 方法,但似乎没有一个支持这一点。

我希望能够遍历 map[strings] 的序列

0 投票
0 回答
60 浏览

go - Config file masks

We deploy services as docker containers using Marathon. The containers include a base config file, Marathon pulls an environment config file (which has a subset of the base keys) at deployment time so when the app starts it has;

  • environment.toml
  • config.toml

when reading the config we need to conflate the values in both files to a single set, effectively masking/shadowing the values present in both files with those in the environment file.

I didn't find this functionality in the Viper docs. Unless I have missed something it seems my options are;

  • Write a package that uses Viper to read both files and perform the conflation.
  • Extend Viper

Before I start writing code, is there already a mechanism for doing this?

0 投票
1 回答
5781 浏览

go - 带有 cobra 和 viper 的配置文件

基本信息:我创建了一个 go 应用程序并使用了 Cobra。Cobra 将 Viper 用于命令行参数和标志。

我有一个带有标志绑定的命令监听,我想在 yaml 文件中配置它。

代码:

listen 命令的 init 函数如下所示:

我的应用程序代码位于https://github.com/sascha-andres/go-logsink

问题:

当我调用应用程序listen --bind "bla"并将标志正确设置为 时bla,但我还没有找到使用位于我的主目录中的 YAML 文件来实现此目的的方法。

配置文件尝试:

在这两种情况下,都找到了配置文件,但标志不是预期值而是默认值。

如何编写配置文件才能正确填充标志?

0 投票
4 回答
5815 浏览

go - 将嵌套配置 Yaml 映射到结构

我是新手,我正在使用 viper 加载我的所有配置,目前我拥有的是 YAML,如下所示

请注意,国家代码是动态的,可以随时为任何国家添加。那么我如何将其映射到从技术上讲我可以做到的结构

我尝试通过循环自己构建它,但我被困在这里

0 投票
1 回答
5268 浏览

go - 如何使用 golang viper Watchconfig & onConfigChange

我正在尝试使用 golang viper 读取我的应用程序配置,并希望始终读取最新配置。请在下面找到我的代码

配置文件

main.go

当主程序运行时,我尝试更新配置并希望看到 OnConfigChange 日志消息,但它从未出现。

我该如何修复这个程序?

有人可以提供一个使用 viper watchconfig 和 onconfigchange 方法来读取最新配置的例子吗