url-parser/commands/query.go

37 lines
670 B
Go
Raw Normal View History

2020-02-03 14:00:54 +00:00
package commands
import (
"fmt"
"github.com/urfave/cli/v2"
)
// QueryFlags defines flags for query subcommand
func QueryFlags() []cli.Flag {
return []cli.Flag{
&cli.StringFlag{
Name: "query-field",
Usage: "filter parsed query string by field name",
EnvVars: []string{"URL_PARSER_QUERY_FIELD"},
},
}
}
// Query prints out the query part from url
func Query(ctx *cli.Context) error {
parts := parseURL(ctx.String("url"))
f := ctx.String("query-field")
if len(parts.RawQuery) > 0 {
if f != "" {
if result := parts.Query().Get(f); result != "" {
fmt.Println(result)
}
} else {
fmt.Println(parts.RawQuery)
}
}
return nil
}