-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Strict env prefix #1629
base: master
Are you sure you want to change the base?
feat: Strict env prefix #1629
Conversation
Signed-off-by: Étienne BERSAC <etienne.bersac@dalibo.com>
👋 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, https://twitter.com/sagikazarmark/status/1306904078967074816 Thank you! ❤️ |
@@ -519,19 +529,24 @@ func SetEnvPrefix(in string) { v.SetEnvPrefix(in) } | |||
|
|||
func (v *Viper) SetEnvPrefix(in string) { | |||
if in != "" { | |||
v.envPrefix = in | |||
v.envPrefix = in + "_" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why append the underscore here if there is a separate variable tracking whether it should be?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable tracks whether the underscore is added by viper (legacy behaviour) or by user.
The rest of the code does not bother whether the envPrefix was modified by viper or not.
@@ -282,6 +283,15 @@ func EnvKeyReplacer(r StringReplacer) Option { | |||
}) | |||
} | |||
|
|||
func StrictEnvPrefix(in string) Option { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I like the name StrictEnvPrefix
.
Something like RawEnvPrefix
or BareEnvPrefix
might sound better.
An alternative I can imagine is a separate option called EnvPrefixWithDelimiter (deprecating any current options).
cf. #1546
I didn't get to test with a sub parser. Hint welcome.
cc @sagikazarmark