package main import ( "context" "net" "os" "os/signal" "syscall" "github.com/xlgmokha/x/pkg/env" "github.com/xlgmokha/x/pkg/log" "github.com/xlgmokha/x/pkg/x" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/authzd.git/pkg/authz" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/authzd.git/pkg/pls" ) func main() { logger := log.New(os.Stdout, log.Fields{"app": "authzd"}) ctx := logger.WithContext(context.Background()) client := x.Must(authz.NewClient(ctx, env.Fetch("SPICEDB_ENDPOINT", ":50051"), env.Fetch("SPICEDB_SECRET", "secret"), )) server := authz.New(authz.Connection.With(ctx, client)) defer client.Close() c := make(chan os.Signal, 1) signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) go func() { <-c server.GracefulStop() logger.Log().Str("status", "goodbye").Send() }() defer server.GracefulStop() logger.Log().Str("status", "ready").Send() socket := x.Must(net.Listen("tcp", ":50052")) pls.LogErrorNow(ctx, server.Serve(socket)) }