diff options
Diffstat (limited to 'config.go')
-rw-r--r-- | config.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/config.go b/config.go new file mode 100644 index 0000000..a12a240 --- /dev/null +++ b/config.go @@ -0,0 +1,39 @@ +package main + +import ( + "io/ioutil" + "log" + + "github.com/BurntSushi/xdg" + "gopkg.in/yaml.v2" +) + +const XDG_CONFIG_NAME = "phlux" + +type PhluxConfig struct { + Latitude float64 `yaml:"latitude"` + Longitude float64 `yaml:"longitude"` + Bridges []struct { + BridgeID string `yaml:"id"` + Token string `yaml:"token"` + } `yaml:"bridges"` +} + +func (c *PhluxConfig) Read() { + var paths xdg.Paths + configFile, err := paths.ConfigFile(XDG_CONFIG_NAME) + if err != nil { + log.Printf("No config file found: %s\n", err.Error()) + return + } + yamlFile, err := ioutil.ReadFile(configFile) + if err != nil { + log.Printf("Error reading config file %s: %s\n", configFile, err.Error()) + return + } + err = yaml.Unmarshal(yamlFile, c) + if err != nil { + log.Printf("Error unmarshalling yaml: %s\n", err.Error()) + return + } +} |