Expected behavior (what you expected to happen):
After calling viper.SetEnvPrefix("FOO_")
and viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_", "-", "_"))
, and given viper.SetDefault("bar-1", "")
and viper.SetDefault("toy_story.buzz-lightyear", "infinity-and-beyond")
, a subsequent call to viper.SafeWriteConfigAs("vars.env")
should a file named "vars.env" containing:
FOO_BAR_1=
FOO_TOY_STORY_BUZZ_LIGHTYEAR=infinity-and-beyond
Actual behavior (what actually happened): The file produced contains:
BAR_1=
TOY_STORY_BUZZ-LIGHTYEAR=infinity-and-beyond
Repl.it link:
Code reproducing the issue:
viper.SetEnvPrefix("FOO_")
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_", "-", "_"))
viper.SetDefault("bar-1", "")
viper.SetDefault("toy_story.buzz-lightyear", "inifinity-and-beyond")
Environment: - Viper version: v1.1.3 - Config source: n/a - File format: env/dotenv
Anything else we should know?:
It looks like v.envKeyReplacer
and v.mergeWithEnvPrefix
aren't getting used in the marshalWriter
call. It's using private implementation.
envName := strings.ToUpper(strings.Replace(key, ".", "_", -1))
(see https://github.com/spf13/viper/blob/master/viper.go#L1708)
Comment From: github-actions[bot]
👋 Thanks for reporting!
A maintainer will take a look at your issue 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! ❤️
Comment From: github-actions[bot]
Issues with no activity for 30 days are marked stale and subject to being closed.