trayweather/config.go

35 lines
946 B
Go

package main
import (
"log"
"github.com/ilyakaznacheev/cleanenv"
"github.com/ncruces/zenity"
)
type Config struct {
CityName string `toml:"CityName" env:"CITY_NAME"`
UpdatePeriodMin int `toml:"UpdatePeriod", env:"UPDATE_PERIOD"`
}
var config Config
func init() {
log.SetFlags(0)
err := cleanenv.ReadConfig("config.toml", &config)
if err != nil {
zenity.Notify("Ошибка при чтении настроек из файла config.toml:\n" + err.Error())
log.Fatalln(err)
}
if config.CityName == "" {
zenity.Notify("Город (поле CityName) не может быть пустым.")
log.Fatalln("Город (поле CityName) не может быть пустым.")
}
if config.UpdatePeriodMin <= 0 {
log.Printf("Частота обновлений слишком низкая (%s), будет установлено значение в одну минуту.")
config.UpdatePeriodMin = 1
}
}