2017-03-04 12 views
1

Ich habe eine Yaml Config-Datei, die alle Einstellungen für mein Programm hat. Zum Beispiel:GoLang Ändern Sie den Wert eines Konfigurationselements mit Viper

something: 
    enabled: true 

ich https://github.com/spf13/viper bin mit dem Wert eines Elements zu erhalten:

viper.GetBool("something.enabled") 

Aber ich frage mich, ob es einen Weg gibt, den Wert von „something.enabled“ direkt ändern zu "falsch" mit Viper? Die Änderungen werden auch auf der Config-Datei anzuwenden, so wird es,:

something: 
    enabled: false 
+0

Meinst du: Wenn du deine Konfigurationsdatei änderst, wird auch die Konfiguration in deinem Programm aktualisiert? Wenn ja, müssen Sie Ihre Konfigurationsdatei zum Beispiel mit 'fsnotify' ansehen. Wenn die Datei geändert wird, verwenden Sie das Ereignis, um die Konfiguration neu zu laden. – apxp

+0

@apxp Nicht genau, ich meinte das Programm aktualisiert den Wert eines Elements in der Konfigurationsdatei. Das Gegenteil von dem, was du gesagt hast. – SuperPykkon

+1

In diesem Fall würde ich empfehlen, die Konfigurationsdatei zu lesen und zu marshalen, indem Sie das yaml-Paket verwenden. Dann können Sie in die Conf-Datei schreiben. – apxp

Antwort

2

Es sieht aus wie Sie nur die Set-Methode verwenden können, wie folgt aus:

viper.Set („something.enabled“, false)

Verwandte Themen