code: func (m *MapStringBool) Set(value string) error {
  	if m.Map == nil {
  		return fmt.Errorf("no target (nil pointer to map[string]bool)")
  	}
  	if !m.initialized || *m.Map == nil {
  		// clear default values, or allocate if no existing map
  		*m.Map = make(map[string]bool)
  		m.initialized = true
  	}
  	for _, s := range strings.Split(value, ",") {
  		if len(s) == 0 {
  			continue
  		}
  		arr := strings.SplitN(s, "=", 2)
  		if len(arr) != 2 {
  			return fmt.Errorf("malformed pair, expect string=bool")
  		}
  		k := strings.TrimSpace(arr[0])
  		v := strings.TrimSpace(arr[1])
  		boolValue, err := strconv.ParseBool(v)
  		if err != nil {
  			return fmt.Errorf("invalid value of %s: %s, err: %v", k, v, err)
  		}
  		(*m.Map)[k] = boolValue
  	}
  	return nil
  }
docs: // Set implements github.com/spf13/pflag.Value