2020-09-21 18:24:51 +00:00
|
|
|
package command
|
2020-02-02 23:05:18 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
"github.com/urfave/cli/v2"
|
|
|
|
)
|
|
|
|
|
|
|
|
// PathFlags defines flags for path subcommand
|
|
|
|
func PathFlags() []cli.Flag {
|
|
|
|
return []cli.Flag{
|
|
|
|
&cli.IntFlag{
|
|
|
|
Name: "path-index",
|
|
|
|
Usage: "filter parsed path by index",
|
|
|
|
EnvVars: []string{"URL_PARSER_PATH_INDEX"},
|
|
|
|
Value: -1,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Path prints out the path part from url
|
|
|
|
func Path(ctx *cli.Context) error {
|
2020-02-03 11:44:19 +00:00
|
|
|
parts := parseURL(ctx.String("url"))
|
2020-02-02 23:05:18 +00:00
|
|
|
i := ctx.Int("path-index")
|
|
|
|
|
|
|
|
if len(parts.Path) > 0 {
|
|
|
|
if i > -1 {
|
|
|
|
path := strings.Split(parts.Path, "/")
|
|
|
|
|
2022-04-25 10:07:13 +00:00
|
|
|
if i++; i < len(path) {
|
2020-02-02 23:05:18 +00:00
|
|
|
fmt.Println(path[i])
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
fmt.Println(parts.Path)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|