url-parser/internal/command/path.go

41 lines
677 B
Go
Raw Normal View History

2020-09-21 20:24:51 +02:00
package command
2020-02-03 00:05:18 +01: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 12:44:19 +01:00
parts := parseURL(ctx.String("url"))
2020-02-03 00:05:18 +01:00
i := ctx.Int("path-index")
if len(parts.Path) > 0 {
if i > -1 {
path := strings.Split(parts.Path, "/")
if i++; i < len(path) {
2020-02-03 00:05:18 +01:00
fmt.Println(path[i])
}
} else {
fmt.Println(parts.Path)
}
}
return nil
}