trayweather/config.go
2021-03-19 22:27:25 +05:00

38 lines
1,010 B
Go

package main
import (
"log"
"time"
"github.com/ilyakaznacheev/cleanenv"
"github.com/ncruces/zenity"
)
type Config struct {
CityName string `toml:"CityName" env:"CITY_NAME"`
UpdatePeriod time.Duration `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) не может быть пустым.")
}
log.Println(config.UpdatePeriod)
if config.UpdatePeriod < time.Minute {
log.Printf("Частота обновлений слишком низкая (%s), будет установлено значение в одну минуту.")
config.UpdatePeriod = time.Minute
}
}