spf13 / viper

Go configuration with fangs
MIT License
26.91k stars 2.02k forks source link

fix: apply envPrefix to all BindEnv variable names #1874

Open justintoman opened 3 months ago

justintoman commented 3 months ago

I am new to Go, so apologies if I did things in a silly way.

I noticed the env prefix does not get applied to the ENV variable names in the case of more than one argument being passed to BindEnv. I tried to fix this and add a test case to verify.


os.Setenv("APP_FOO", "with prefix")
os.Setenv("FOO", "without prefix")

viper.SetEnvPrefix("APP")
viper.AutomaticEnv()

viper.BindEnv("a.b", "FOO")

viper.Get("a.b") // before: "without prefix", after: "with prefix"

type Nested struct {
  b  string `mapstructure:"b"`
}

type Root struct {
  a Nested `mapstructure:"a"`
}

var a Root
viper.Unmarshal(a)
a.b // before: "without prefix", after: "with prefix"
CLAassistant commented 3 months ago

CLA assistant check
All committers have signed the CLA.

github-actions[bot] commented 3 months ago

👋 Thanks for contributing to Viper! You are awesome! 🎉

A maintainer will take a look at your pull request shortly. 👀

In the meantime: We are working on Viper v2 and we would love to hear your thoughts about what you like or don't like about Viper, so we can improve or fix those issues.

⏰ If you have a couple minutes, please take some time and share your thoughts: https://forms.gle/R6faU74qPRPAzchZ9

📣 If you've already given us your feedback, you can still help by spreading the news, either by sharing the above link or telling people about this on Twitter:

https://twitter.com/sagikazarmark/status/1306904078967074816

Thank you! ❤️