CloudlogUDP/config/config.go

50 lines
917 B
Go
Raw Normal View History

2023-11-29 11:02:30 +07:00
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
}