func TimezoneInterceptor()

in internal/commands/interceptor/timezone.go [32:57]


func TimezoneInterceptor(ctx *cli.Context) error {
	// If there is timezone given by the user in command line, use it directly
	if ctx.IsSet("timezone") {
		return nil
	}

	serverTimeInfo, err := metadata.ServerTimeInfo(ctx)

	if err != nil {
		logger.Log.Debugf("Failed to get server time info: %v\n", err)
		return nil
	}

	if timezone := serverTimeInfo.Timezone; timezone != nil {
		if _, err := strconv.Atoi(*timezone); err == nil {
			for _, c := range ctx.Lineage() {
				if err := c.Set("timezone", *timezone); err == nil {
					return nil
				}
			}
			return fmt.Errorf("cannot set the timezone flag globally")
		}
	}

	return nil
}