param.go 495 B

123456789101112131415161718192021222324252627
  1. package util
  2. import (
  3. "flag"
  4. "fmt"
  5. "strings"
  6. )
  7. // ParseParamSetFlag parse param from a=b,c=d
  8. func ParseParamSetFlag(param string, fset *flag.FlagSet) (err error) {
  9. if param == "" {
  10. return nil
  11. }
  12. args := strings.Split(param, ",")
  13. for _, arg := range args {
  14. spec := strings.SplitN(arg, "=", 2)
  15. if len(spec) == 2 {
  16. err = fset.Set(spec[0], spec[1])
  17. } else {
  18. err = fset.Set(spec[0], "")
  19. }
  20. if err != nil {
  21. return fmt.Errorf("set flag error: %s", err)
  22. }
  23. }
  24. return nil
  25. }