Documentation ¶
Overview ¶
Package base defines shared basic pieces of the commands, in particular logging and the Command structure.
Index ¶
- Variables
- func Errorf(format string, args ...interface{})
- func Execute()
- func Exit()
- func ExitIfErrors()
- func Fatalf(format string, args ...interface{})
- func GetExitStatus() int
- func Help(w io.Writer, args []string)
- func PrintUsage(w io.Writer, cmd *Command)
- func RegisterCommand(cmd *Command)
- func SetExitStatus(n int)
- func SortCommands()
- type Command
- type CommandEnvHolder
Constants ¶
This section is empty.
Variables ¶
var SortLessFunc = func(i, j *Command) bool {
return i.Name() < j.Name()
}
SortLessFunc used for sort commands list, can be override from outside
Functions ¶
func Errorf ¶
func Errorf(format string, args ...interface{})
Errorf logs error and set exit status to 1, but not exit
func Fatalf ¶
func Fatalf(format string, args ...interface{})
Fatalf logs error and exit with code 1
func RegisterCommand ¶
func RegisterCommand(cmd *Command)
RegisterCommand register a command to RootCommand
Types ¶
type Command ¶
type Command struct { // Run runs the command. // The args are the arguments after the command name. Run func(cmd *Command, args []string) // UsageLine is the one-line usage message. // The words between the first word (the "executable name") and the first flag or argument in the line are taken to be the command name. // // UsageLine supports go template syntax. It's recommended to use "{{.Exec}}" instead of hardcoding name UsageLine string // Short is the short description shown in the 'go help' output. // // Note: Short does not support go template syntax. Short string // Long is the long message shown in the 'go help <this-command>' output. // // Long supports go template syntax. It's recommended to use "{{.Exec}}", "{{.LongName}}" instead of hardcoding strings Long string // Flag is a set of flags specific to this command. Flag flag.FlagSet // CustomFlags indicates that the command will do its own // flag parsing. CustomFlags bool // Commands lists the available commands and help topics. // The order here is the order in which they are printed by 'go help'. // Note that subcommands are in general best avoided. Commands []*Command }
A Command is an implementation of a v2ray command like v2ray run or v2ray version.
var RootCommand *Command
RootCommand is the root command of all commands
func (*Command) LongName ¶
LongName returns the command's long name: all the words in the usage line between first word (e.g. "v2ray") and a flag or argument,
func (*Command) Name ¶
Name returns the command's short name: the last word in the usage line before a flag or argument.
type CommandEnvHolder ¶
type CommandEnvHolder struct { // Excutable name of current binary Exec string // commands column width of current command CommandsWidth int }
CommandEnvHolder is a struct holds the environment info of commands
var CommandEnv CommandEnvHolder
CommandEnv holds the environment info of commands