code: func (c *StoreConfig) SetConfigValue(key, value string) error {
  	if key != "path" {
  		value = strings.ToLower(value)
  	}
  	o := reflect.ValueOf(c).Elem()
  	for i := 0; i < o.NumField(); i++ {
  		jsonArg := o.Type().Field(i).Tag.Get("yaml")
  		if jsonArg == "" || jsonArg == "-" {
  			continue
  		}
  		if jsonArg != key {
  			continue
  		}
  		f := o.Field(i)
  		switch f.Kind() {
  		case reflect.String:
  			f.SetString(value)
  			return nil
  		case reflect.Bool:
  			if value == "true" {
  				f.SetBool(true)
  				return nil
  			} else if value == "false" {
  				f.SetBool(false)
  				return nil
  			} else {
  				return errors.Errorf("not a bool: %s", value)
  			}
  		case reflect.Int:
  			iv, err := strconv.Atoi(value)
  			if err != nil {
  				return errors.Wrapf(err, "failed to convert '%s' to int", value)
  			}
  			f.SetInt(int64(iv))
  			return nil
  		default:
  			continue
  		}
  	}
  	return errors.New("unknown config option")
  }
docs: // SetConfigValue will try to set the given key to the value in the config struct