28 lines
495 B
Go
28 lines
495 B
Go
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
|
|
}
|