23 lines
		
	
	
		
			727 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			727 B
		
	
	
	
		
			Go
		
	
	
| package context
 | |
| 
 | |
| import "context"
 | |
| 
 | |
| type versionKey struct{}
 | |
| 
 | |
| func (versionKey) String() string { return "version" }
 | |
| 
 | |
| // WithVersion stores the application version in the context. The new context
 | |
| // gets a logger to ensure log messages are marked with the application
 | |
| // version.
 | |
| func WithVersion(ctx context.Context, version string) context.Context {
 | |
| 	ctx = context.WithValue(ctx, versionKey{}, version)
 | |
| 	// push a new logger onto the stack
 | |
| 	return WithLogger(ctx, GetLogger(ctx, versionKey{}))
 | |
| }
 | |
| 
 | |
| // GetVersion returns the application version from the context. An empty
 | |
| // string may returned if the version was not set on the context.
 | |
| func GetVersion(ctx context.Context) string {
 | |
| 	return GetStringValue(ctx, versionKey{})
 | |
| }
 |