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/sparkled/pkg/authz" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/pls" ) func main() { logger := log.New(os.Stdout, log.Fields{"app": "authzd"}) ctx := logger.WithContext(context.Background()) connection := authz.NewGrpcConnection(ctx, env.Fetch("AUTHZD_HOST", ":20000")) defer connection.Close() client := authz.NewSpiceDBClient( ctx, env.Fetch("ZED_ENDPOINT", ":50051"), env.Fetch("ZED_TOKEN", "secret"), ) defer client.Close() ctx = authz.Connection.With(ctx, connection) ctx = authz.Client.With(ctx, client) server := authz.New(ctx) 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", ":10003")) pls.LogErrorNow(ctx, server.Serve(socket)) }