mirror of
https://github.com/Oxalide/vsphere-influxdb-go.git
synced 2023-10-10 13:36:51 +02:00
30 lines
868 B
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
|
||
|
}
|