package util
import (
"context"
"os"
"google.golang.org/grpc"
"google.golang.org/grpc/metadata"
)
const clientNameKey = "client-name"
var clientName = "gpctl:" + os.Getenv("USER") + "@" + os.Getenv("HOSTNAME") + os.Getenv("HOST")
func clientInterceptor(
ctx context.Context,
method string,
req interface{},
reply interface{},
cc *grpc.ClientConn,
invoker grpc.UnaryInvoker,
opts ...grpc.CallOption,
) error {
ctx = metadata.AppendToOutgoingContext(ctx, clientNameKey, clientName)
err := invoker(ctx, method, req, reply, cc, opts...)
return err
}
func WithClientUnaryInterceptor() grpc.DialOption {
return grpc.WithUnaryInterceptor(clientInterceptor)
}