From 70b312d377ce34a4d87720a2b344bafb0f15c0f6 Mon Sep 17 00:00:00 2001 From: Adrian Gallagher Date: Mon, 11 May 2015 16:55:40 +1000 Subject: [PATCH] Added config check function for core variables. --- config.go | 28 ++++++++++++++++++++++++++++ main.go | 9 ++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/config.go b/config.go index 564d344a..90ef0305 100644 --- a/config.go +++ b/config.go @@ -2,6 +2,7 @@ package main import ( "encoding/json" + "fmt" "io/ioutil" "time" ) @@ -10,6 +11,13 @@ const ( CONFIG_FILE = "config.json" ) +var ( + ErrExchangeNameEmpty = "Exchange #%d in config: Exchange name is empty." + ErrExchangeAvailablePairsEmpty = "Exchange %s: Available pairs is empty." + ErrExchangeEnabledPairsEmpty = "Exchange %s: Enabled pairs is empty." + ErrExchangeBaseCurrenciesEmpty = "Exchange %s: Base currencies is empty." +) + type SMSContacts struct { Name string Number string @@ -38,6 +46,26 @@ type Exchanges struct { BaseCurrencies string } +func CheckConfigValues() error { + for i, exch := range bot.config.Exchanges { + if exch.Enabled { + if exch.Name == "" { + return fmt.Errorf(ErrExchangeNameEmpty, i) + } + if exch.AvailablePairs == "" { + return fmt.Errorf(ErrExchangeAvailablePairsEmpty, exch.Name) + } + if exch.EnabledPairs == "" { + return fmt.Errorf(ErrExchangeEnabledPairsEmpty, exch.Name) + } + if exch.BaseCurrencies == "" { + return fmt.Errorf(ErrExchangeBaseCurrenciesEmpty, exch.Name) + } + } + } + return nil +} + func ReadConfig() (Config, error) { file, err := ioutil.ReadFile(CONFIG_FILE) diff --git a/main.go b/main.go index ff21551f..2ef57767 100644 --- a/main.go +++ b/main.go @@ -43,7 +43,14 @@ func main() { bot.config, err = ReadConfig() if err != nil { - log.Println("Fatal error opening config.json file. Error: ", err) + log.Println("Fatal error opening config.json file. Error:", err) + return + } + + err = CheckConfigValues() + + if err != nil { + log.Println("Fatal error checking config values. Error:", err) return }