package config import ( "io/ioutil" "log" "os" "path/filepath" "gopkg.in/yaml.v2" ) // Config from YAML type Config struct { CloudLog struct { Server string `yaml:"server"` QSOUrl string `yaml:"qso_url"` API string `yaml:"api"` } `yaml:"cloudlog"` UDP struct { Port string `yaml:"port"` } `yaml:"udp"` QRZ struct { API string `yaml:"api"` Callsign string `yaml:"callsign"` } Clublog struct { EMail string `yaml:"email"` Password string `yaml:"password"` Callsign string `yaml:"callsign"` API string `yaml:"api"` URL string `yaml:"url"` } } func NewConfig() Config { var c Config ex, err := os.Executable() if err != nil { log.Println(err) } configFile := filepath.Dir(ex) + "/config/config.yaml" yamlFile, err := ioutil.ReadFile(configFile) err = yaml.Unmarshal([]byte(yamlFile), &c) if err != nil { log.Fatalf("error: %v", err) } return c }