38 lines
811 B
Go
38 lines
811 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"net/http"
|
|
)
|
|
|
|
func main() {
|
|
log.Println("Запуск приложения")
|
|
|
|
cfg, err := loadConfig("config.yaml")
|
|
if err != nil {
|
|
log.Fatalf("Ошибка загрузки конфига: %v", err)
|
|
}
|
|
|
|
notifiers, err := BuildNotifiers(cfg)
|
|
if err != nil {
|
|
log.Fatalf("Ошибка инициализации каналов: %v", err)
|
|
}
|
|
if len(notifiers) == 0 {
|
|
log.Fatal("не сконфигурирован ни один канал уведомлений")
|
|
}
|
|
|
|
http.HandleFunc("/", makeHandler(notifiers))
|
|
|
|
for _, addr := range cfg.ListenAddresses {
|
|
addr := addr
|
|
go func() {
|
|
log.Printf("Слушаю %s ...", addr)
|
|
if err := http.ListenAndServe(addr, nil); err != nil {
|
|
log.Printf("Ошибка на %s: %v", addr, err)
|
|
}
|
|
}()
|
|
}
|
|
|
|
select {}
|
|
}
|