You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
495 B
27 lines
495 B
package util |
|
|
|
import ( |
|
"flag" |
|
"fmt" |
|
"strings" |
|
) |
|
|
|
// ParseParamSetFlag parse param from a=b,c=d |
|
func ParseParamSetFlag(param string, fset *flag.FlagSet) (err error) { |
|
if param == "" { |
|
return nil |
|
} |
|
args := strings.Split(param, ",") |
|
for _, arg := range args { |
|
spec := strings.SplitN(arg, "=", 2) |
|
if len(spec) == 2 { |
|
err = fset.Set(spec[0], spec[1]) |
|
} else { |
|
err = fset.Set(spec[0], "") |
|
} |
|
if err != nil { |
|
return fmt.Errorf("set flag error: %s", err) |
|
} |
|
} |
|
return nil |
|
}
|
|
|