30 lines
560 B
Go
30 lines
560 B
Go
package main
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"log/slog"
|
||
|
|
"os"
|
||
|
|
"os/signal"
|
||
|
|
"syscall"
|
||
|
|
|
||
|
|
"goAuth/internal/rest"
|
||
|
|
)
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, nil)))
|
||
|
|
|
||
|
|
handler, err := rest.New(rest.LoadConfig())
|
||
|
|
if err != nil {
|
||
|
|
slog.Error("initialize rest service", slog.Any("error", err))
|
||
|
|
os.Exit(1)
|
||
|
|
}
|
||
|
|
defer handler.Close()
|
||
|
|
|
||
|
|
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
|
||
|
|
defer stop()
|
||
|
|
|
||
|
|
if err := handler.Serve(ctx); err != nil {
|
||
|
|
slog.Error("serve", slog.Any("error", err))
|
||
|
|
os.Exit(1)
|
||
|
|
}
|
||
|
|
}
|