添加usage
This commit is contained in:
parent
caa86b5e79
commit
8679909ae0
16
main.go
16
main.go
|
@ -11,6 +11,7 @@ import (
|
|||
)
|
||||
|
||||
type CmdDaemon struct {
|
||||
Name string // app cli command name
|
||||
SocketPath string // unix socket path
|
||||
cmds map[string]CmdHandler
|
||||
}
|
||||
|
@ -103,7 +104,7 @@ func (c *CmdDaemon) Listen() error {
|
|||
cmdHandler, ok := c.cmds[req.Cmd]
|
||||
if !ok {
|
||||
_ = Write(conn, CmdResponse{
|
||||
Error: "unknown command: " + req.Cmd,
|
||||
Error: "unknown command: " + req.Cmd + "\n" + c.Usage(),
|
||||
Continue: false,
|
||||
})
|
||||
return
|
||||
|
@ -113,12 +114,23 @@ func (c *CmdDaemon) Listen() error {
|
|||
cmdConn := &CmdConn{Conn: conn, Id: req.Id}
|
||||
err = cmdHandler.Handle(cmdConn, req)
|
||||
if err != nil {
|
||||
_ = cmdConn.WriteError(err, false)
|
||||
_ = cmdConn.End(err.Error() + cmdHandler.Usage())
|
||||
}
|
||||
}(conn)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *CmdDaemon) Usage() string {
|
||||
usage := fmt.Sprintf("Usage: %s [options] <command> [args...]\n\n", c.Name)
|
||||
usage += "Options:\n"
|
||||
usage += " -d, --debug Run command in debug mode\n\n"
|
||||
usage += "Commands:\n"
|
||||
for cmd, handler := range c.cmds {
|
||||
usage += fmt.Sprintf(" %-10s %s\n", cmd, handler.Description())
|
||||
}
|
||||
return usage
|
||||
}
|
||||
|
||||
func (c *CmdDaemon) RegisterCmd(cmd string, handler CmdHandler) {
|
||||
c.cmds[cmd] = handler
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue