func getQuery(req cmds.Request) (string, error) { query := url.Values{} for k, v := range req.Options() { if OptionSkipMap[k] { continue } str := fmt.Sprintf("%v", v) query.Set(k, str) } args := req.StringArguments() argDefs := req.Command().Arguments argDefIndex := 0 for _, arg := range args { argDef := argDefs[argDefIndex] // skip ArgFiles for argDef.Type == cmds.ArgFile { argDefIndex++ argDef = argDefs[argDefIndex] } query.Add("arg", arg) if len(argDefs) > argDefIndex+1 { argDefIndex++ } } return query.Encode(), nil }