birthdaybot/cmd/birthdaybot/main.go
2023-07-01 17:48:10 +02:00

42 lines
891 B
Go

package main
import (
"flag"
"os"
"os/signal"
"syscall"
"git.ctrlz.es/mgdelacroix/birthdaybot/model"
"git.ctrlz.es/mgdelacroix/birthdaybot/server"
"github.com/charmbracelet/log"
)
func main() {
configFlag := flag.String("config", "birthdaybot.yml", "path to the configuration file")
flag.Parse()
config, err := model.ReadConfig(*configFlag)
if err != nil {
log.Error("error reading config", "configPath", *configFlag, "error", err)
os.Exit(1)
}
if err := config.IsValid(); err != nil {
log.Error("invalid config", "configPath", *configFlag, "error", err)
os.Exit(1)
}
srv, err := server.New(config)
if err != nil {
log.Error("error creating server", "error", err)
os.Exit(1)
}
c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGINT, syscall.SIGTERM)
srv.Start()
s := <-c
srv.Logger.Info("received signal, stopping", "signal", s)
srv.Stop()
}