Go here を使用した最初の簡単なプロジェクト。
ユーザー入力に基づいて、既存の構成ファイルに新しいキーを追加する必要があります。Viper で正しく読み取り、アプリケーション全体で使用できますが、WriteConfig
機能していないようです。
ここにスニペットがあります:
oldConfig := viper.AllSettings()
fmt.Printf("All settings #1 %+v\n\n", oldConfig)
viper.Set("setting1", chosenSetting1)
viper.Set("setting2", chosenSetting2)
newConfig := viper.AllSettings()
fmt.Printf("All settings #2 %+v\n\n", newConfig)
err := viper.WriteConfig()
if err != nil {
log.Fatalln(err)
}
newConfig
期待どおりに新しい設定が含まれますWriteConfig
が、構成ファイルに変更は適用されません。
Viper リポジトリで、関数の書き込みは非常に物議を醸しており、既存または非存在のファイルを処理するという点で少しバグがあることを読みましたが、このような単純なケースでは機能することを期待しています。
他の機能(つまりSafeWriteConfig
)も試しましたが、成功しませんでした。
Go 1.16.2 と Viper 1.7.1 を使用しています。
私は何を間違っていますか?