42 lines
935 B
Go
42 lines
935 B
Go
package agent
|
|
|
|
import (
|
|
"context"
|
|
|
|
"forge.cadoles.com/Cadoles/emissary/pkg/client"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
type contextKey string
|
|
|
|
const (
|
|
contextKeyClient contextKey = "client"
|
|
contextKeyThumbprint contextKey = "thumbprint"
|
|
)
|
|
|
|
func withClient(ctx context.Context, client *client.Client) context.Context {
|
|
return context.WithValue(ctx, contextKeyClient, client)
|
|
}
|
|
|
|
func Client(ctx context.Context) *client.Client {
|
|
client, ok := ctx.Value(contextKeyClient).(*client.Client)
|
|
if !ok {
|
|
panic(errors.New("could not retrieve client from context"))
|
|
}
|
|
|
|
return client
|
|
}
|
|
|
|
func withThumbprint(ctx context.Context, thumbprint string) context.Context {
|
|
return context.WithValue(ctx, contextKeyThumbprint, thumbprint)
|
|
}
|
|
|
|
func Thumbprint(ctx context.Context) string {
|
|
thumbprint, ok := ctx.Value(contextKeyThumbprint).(string)
|
|
if !ok {
|
|
panic(errors.New("could not retrieve thumbprint from context"))
|
|
}
|
|
|
|
return thumbprint
|
|
}
|