2020-09-21 18:24:51 +00:00
|
|
|
package command
|
2020-02-03 14:00:54 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"github.com/urfave/cli/v2"
|
|
|
|
)
|
|
|
|
|
2023-02-08 09:13:55 +00:00
|
|
|
// QueryFlags defines flags for query subcommand.
|
2020-02-03 14:00:54 +00:00
|
|
|
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"},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-02-08 09:13:55 +00:00
|
|
|
// Query prints out the query part from url.
|
2020-02-03 14:00:54 +00:00
|
|
|
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
|
|
|
|
}
|