spf13 / viper

Go configuration with fangs
MIT License
26.48k stars 2.01k forks source link

INI Configs do not support viper.GetStringSlice(), but YAML does #1675

Open mpenning opened 8 months ago

mpenning commented 8 months ago

Preflight Checklist

Viper Version

1.17

Go Version

1.20

Config Source

Files

Format

INI

Repl.it link

No response

Code reproducing the issue

configReader := viper.New()
  configReader.AddConfigPath(".") // read from this directory
  configReader.SetConfigName("this.yaml")
  configReader.SetConfigType("yaml")
  err := configReader.ReadInConfig()
  if err != nil {
    logoru.Critical(err)
  }
  // Read the slice of commands listed under the ssh_logger / commands keys...
  myCommands := configReader.GetStringSlice("ssh_logger.commands")

Expected Behavior

If using configReader.SetConfigName("this.ini") and configReader.ConfigType("ini")above, configReader.GetStringSlice("ssh_logger.command") iterates over WORDS, not LINES...

[ssh_logger]
commands =
    terminal length 0
    show ip route 1.1.1.1

Actual Behavior

If using configReader.SetConfigName("this.ini") and configReader.ConfigType("ini")above, configReader.GetStringSlice("ssh_logger.command") iterates over WORDS, not LINES... specifically, GetStringSlice() returns {"terminal", "length", "0", "show", "ip", "route", "1.1.1.1"}.

[ssh_logger]
commands =
    terminal length 0
    show ip route 1.1.1.1

Using configReader.SetConfigType("yaml") and a YAML configuration work correctly... GetStringSlice() returns {"terminal length 0", "show ip route 1.1.1.1"}.

Steps To Reproduce

See above

Additional Information

No response

github-actions[bot] commented 8 months ago

👋 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! ❤️