code: func GetContext(app subcommands.Application, cmd subcommands.CommandRun, env subcommands.Env) context.Context {
  	ctx := context.Background()
  	if m, _ := app.(ContextModificator); m != nil {
  		ctx = m.ModifyContext(ctx)
  	}
  	if m, _ := cmd.(ContextModificator); m != nil {
  		ctx = m.ModifyContext(ctx)
  	}
  	if len(env) > 0 {
  		ctx = context.WithValue(ctx, &envKey, env)
  	}
  	return ctx
  }
docs: // GetContext sniffs ContextModificator in the app and in the cmd and uses them
  // to derive a context for the command.
  //
  // Embeds the subcommands.Env into the Context (if any), which can be accessed
  // with the *env methods in this package.
  //
  // Subcommands can use it to get an initial context in their 'Run' methods.
  //
  // Returns the background context if app doesn't implement ContextModificator.