vsphere-influxdb-go/vendor/github.com/influxdata/influxdb/cmd/parse.go

30 lines
868 B
Go

// Package cmd is the root package of the various command-line utilities for InfluxDB.
package cmd
import "strings"
// ParseCommandName extracts the command name and args from the args list.
func ParseCommandName(args []string) (string, []string) {
// Retrieve command name as first argument.
var name string
if len(args) > 0 {
if !strings.HasPrefix(args[0], "-") {
name = args[0]
} else if args[0] == "-h" || args[0] == "-help" || args[0] == "--help" {
// Special case -h immediately following binary name
name = "help"
}
}
// If command is "help" and has an argument then rewrite args to use "-h".
if name == "help" && len(args) > 2 && !strings.HasPrefix(args[1], "-") {
return args[1], []string{"-h"}
}
// If a named command is specified then return it with its arguments.
if name != "" {
return name, args[1:]
}
return "", args
}