Documentation ¶
Index ¶
- Variables
- func AddAction(action Command)
- func AddExitAction(f func())
- func AddExitActionWithError(f func() error)
- func ExitOnErr(err error)
- func ExitOnStderr(err error)
- func ExitOnStderrString(err string)
- func Main()
- func MustStdoutErrAppendToFile(path string)
- func MustStdoutErrTeeToFile(path string)
- func MustWriteGolangVersion(versionFilePath string, version string)
- func ProxyCommand(args ...string) func()
- func UseExitActionRegister()
- func WaitForExit()
- type Command
- type CommandGroup
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultCommandGroup = NewCommandGroup()
View Source
var VERSION = ""
Functions ¶
func AddExitAction ¶
func AddExitAction(f func())
如果你使用了这个命令,主线程不会退出,而是会等到用户或者系统发送退出命令才会退出. 使用命令调用时,注册退出动作, 如果你使用了这个东西,请不要再使用WaitForExit了 TODO 这个地方过于不直观
func AddExitActionWithError ¶
func AddExitActionWithError(f func() error)
func ExitOnStderrString ¶
func ExitOnStderrString(err string)
func MustStdoutErrTeeToFile ¶
func MustStdoutErrTeeToFile(path string)
把stderr和stdout使用tee的方法,重定向到文件,并且也输出到原始的stdout,(原始的stderr被忽略) 该方案目前无法在当前进程实现. 大概相当于 xxx 2>&1 | tee path.log 当出现 panic时 会掉一些数据. 在很低的复杂度下不能解决这个问题.
func MustWriteGolangVersion ¶
func ProxyCommand ¶
func ProxyCommand(args ...string) func()
func UseExitActionRegister ¶
func UseExitActionRegister()
调用这个函数来保证使用AddExitAction方法来注册进程退出请求. 使用这个来保证kmgConsole.Main一定会等待进程结束
func WaitForExit ¶
func WaitForExit()
wait for the system sign or ctrl-c or command kill. 等用户按CTRL+c退出,或者等到被kill掉,接受到这个信号之后还可以运行一些代码. darwin
CTRL+c 会发出 os.Interrupt 也是 syscall.SIGINT kill 命令 会发出 syscall.SIGTERM
Types ¶
type Command ¶
type Command struct { Name string //名称,不区分大小写 Desc string //暂时没有用到 Runner func() //运行这个命令的函数 Hidden bool //隐藏这个命令,使其在帮助列表里面不显示 }
保证在Command里面第一个是这个Command传入的名字,第二个及后面的是这个Command传入参数. 保证 os.Args 长度至少1个.
type CommandGroup ¶
type CommandGroup struct {
// contains filtered or unexported fields
}
一组命令
func AddCommand ¶
func AddCommand(action Command) *CommandGroup
func AddCommandWithName ¶
func AddCommandWithName(name string, runner func()) *CommandGroup
func NewCommandGroup ¶
func NewCommandGroup() *CommandGroup
func (*CommandGroup) AddCommand ¶
func (g *CommandGroup) AddCommand(action Command) *CommandGroup
func (*CommandGroup) AddCommandWithName ¶
func (g *CommandGroup) AddCommandWithName(name string, runner func()) *CommandGroup
func (*CommandGroup) Help ¶
func (g *CommandGroup) Help()
func (*CommandGroup) Main ¶
func (g *CommandGroup) Main()
Click to show internal directories.
Click to hide internal directories.