summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/hashicorp/go-sockaddr/cmd/sockaddr/command/rfc.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/go-sockaddr/cmd/sockaddr/command/rfc.go')
-rw-r--r--vendor/github.com/hashicorp/go-sockaddr/cmd/sockaddr/command/rfc.go121
1 files changed, 0 insertions, 121 deletions
diff --git a/vendor/github.com/hashicorp/go-sockaddr/cmd/sockaddr/command/rfc.go b/vendor/github.com/hashicorp/go-sockaddr/cmd/sockaddr/command/rfc.go
deleted file mode 100644
index 4c66b8517..000000000
--- a/vendor/github.com/hashicorp/go-sockaddr/cmd/sockaddr/command/rfc.go
+++ /dev/null
@@ -1,121 +0,0 @@
-package command
-
-import (
- "flag"
- "fmt"
- "strconv"
-
- "github.com/hashicorp/errwrap"
- sockaddr "github.com/hashicorp/go-sockaddr"
- "github.com/mitchellh/cli"
-)
-
-type RFCCommand struct {
- Ui cli.Ui
-
- // flags is a list of options belonging to this command
- flags *flag.FlagSet
-
- // silentMode prevents any output and only returns exit code 1 when the
- // IP address is NOT a member of the known RFC. Unknown RFCs return a
- // status code of 2.
- silentMode bool
-}
-
-// Description is the long-form command help.
-func (c *RFCCommand) Description() string {
- return `Tests a given IP address to see if it is part of a known RFC. If the IP address belongs to a known RFC, return exit code 0 and print the status. If the IP does not belong to an RFC, return 1. If the RFC is not known, return 2.`
-}
-
-// Help returns the full help output expected by `sockaddr -h cmd`
-func (c *RFCCommand) Help() string {
- return MakeHelp(c)
-}
-
-// InitOpts is responsible for setup of this command's configuration via the
-// command line. InitOpts() does not parse the arguments (see parseOpts()).
-func (c *RFCCommand) InitOpts() {
- c.flags = flag.NewFlagSet("rfc", flag.ContinueOnError)
- c.flags.Usage = func() { c.Ui.Output(c.Help()) }
- c.flags.BoolVar(&c.silentMode, "s", false, "Silent, only return different exit codes")
-}
-
-// Run executes this command.
-func (c *RFCCommand) Run(args []string) int {
- if len(args) == 0 {
- c.Ui.Error(c.Help())
- return 1
- }
-
- c.InitOpts()
- unprocessedArgs, err := c.parseOpts(args)
- if err != nil {
- if errwrap.Contains(err, "flag: help requested") {
- return 0
- }
- return 1
- }
-
- switch numArgs := len(unprocessedArgs); {
- case numArgs != 2 && numArgs != 0:
- c.Ui.Error(`ERROR: Need an RFC Number and an IP address to test.`)
- c.Ui.Error(c.Help())
- fallthrough
- case numArgs == 0:
- return 1
- }
-
- // Parse the RFC Number
- rfcNum, err := strconv.ParseUint(unprocessedArgs[0], 10, 32)
- if err != nil {
- c.Ui.Error(fmt.Sprintf("ERROR: Invalid RFC Number %+q: %v", unprocessedArgs[0], err))
- return 2
- }
-
- // Parse the IP address
- ipAddr, err := sockaddr.NewIPAddr(unprocessedArgs[1])
- if err != nil {
- c.Ui.Error(fmt.Sprintf("ERROR: Invalid IP address %+q: %v", unprocessedArgs[1], err))
- return 3
- }
-
- switch inRFC := sockaddr.IsRFC(uint(rfcNum), ipAddr); {
- case inRFC && !c.silentMode:
- c.Ui.Output(fmt.Sprintf("%s is part of RFC %d", ipAddr, rfcNum))
- fallthrough
- case inRFC:
- return 0
- case !inRFC && !c.silentMode:
- c.Ui.Output(fmt.Sprintf("%s is not part of RFC %d", ipAddr, rfcNum))
- fallthrough
- case !inRFC:
- return 1
- default:
- panic("bad")
- }
-}
-
-// Synopsis returns a terse description used when listing sub-commands.
-func (c *RFCCommand) Synopsis() string {
- return `Test to see if an IP is part of a known RFC`
-}
-
-// Usage is the one-line usage description
-func (c *RFCCommand) Usage() string {
- return `sockaddr rfc [RFC Number] [IP Address]`
-}
-
-// VisitAllFlags forwards the visitor function to the FlagSet
-func (c *RFCCommand) VisitAllFlags(fn func(*flag.Flag)) {
- c.flags.VisitAll(fn)
-}
-
-// parseOpts is responsible for parsing the options set in InitOpts(). Returns
-// a list of non-parsed flags.
-func (c *RFCCommand) parseOpts(args []string) ([]string, error) {
- if err := c.flags.Parse(args); err != nil {
- return nil, err
- }
-
- return c.flags.Args(), nil
-}