50 lines
917 B
Go
50 lines
917 B
Go
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
|
|
}
|