in ops.go [69:103]
func parseArgs(usage string, args []string) []string {
res := []string{}
// parse args
parser := docopt.Parser{}
opts, err := parser.ParseArgs(usage, args, OpsVersion)
if err != nil {
warn(err)
return res
}
for k, v := range opts {
kk := strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(k, "-", "_"), "<", "_"), ">", "_")
vv := ""
//fmt.Println(v, reflect.TypeOf(v))
switch o := v.(type) {
case bool:
vv = "false"
if o {
vv = "true"
}
case string:
vv = o
case []string:
a := []string{}
for _, i := range o {
a = append(a, fmt.Sprintf("'%v'", i))
}
vv = "(" + strings.Join(a, " ") + ")"
case nil:
vv = ""
}
res = append(res, fmt.Sprintf("%s=%s", kk, vv))
}
sort.Strings(res)
return res
}