| 1234567891011121314151617181920212223242526272829303132333435 |
- package context
- import (
- gocontext "context"
- "github.com/sirupsen/logrus"
- "golang.org/x/net/context"
- )
- type currentContextKey struct{}
- func WithCurrentContext(ctx gocontext.Context, configName string, contextName string) (context.Context, error) {
- config, err := LoadConfigFile(configName, "config.json")
- if err != nil {
- return ctx, err
- }
- currentContext := contextName
- if currentContext == "" {
- currentContext = config.CurrentContext
- }
- if currentContext == "" {
- currentContext = "default"
- }
- logrus.Debugf("Current context %q", currentContext)
- return context.WithValue(ctx, currentContextKey{}, currentContext), nil
- }
- // CurrentContext returns the current context name
- func CurrentContext(ctx context.Context) string {
- cc, _ := ctx.Value(currentContextKey{}).(string)
- return cc
- }
|