initial commit

This commit is contained in:
ston1th 2022-07-10 01:10:31 +02:00
commit f48fa210bb
49 changed files with 4058 additions and 0 deletions

58
cmd/goacc/main.go Normal file
View file

@ -0,0 +1,58 @@
// Copyright (C) 2022 Marius Schellenberger
package main
import (
"context"
"flag"
"os"
"os/signal"
"syscall"
"time"
"git.giftfish.de/ston1th/goacc/pkg/core"
"git.giftfish.de/ston1th/goacc/pkg/server"
"github.com/go-logr/logr"
"k8s.io/klog/v2"
"k8s.io/klog/v2/klogr"
)
var (
version string
config string
log logr.Logger
)
func main() {
klog.InitFlags(nil)
flag.StringVar(&config, "config", "", "path to config file")
flag.Parse()
log = klogr.New().WithName("main")
log.Info("starting goacc", "version", version)
cfg, err := core.LoadConfig(config)
if err != nil {
klog.Fatalf("init failed: %s", err)
}
srv, err := server.NewServer(klogr.New().WithName("srv"), cfg)
if err != nil {
klog.Fatalf("init failed: %s", err)
}
err = srv.Start(klogr.New().WithName("db"))
if err != nil {
klog.Fatalf("init failed: %s", err)
}
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
<-sigs
log.Info("goacc shutdown initiated")
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
srv.Shutdown(ctx)
cancel()
log.Info("goacc shutdown completed")
os.Exit(0)
}