mirror of
https://shylinux.com/x/icebergs
synced 2025-04-30 18:59:22 +08:00
opt route
This commit is contained in:
parent
dc686729a2
commit
2353f80ce2
@ -63,6 +63,8 @@ func IsLocalHost(m *ice.Message, ip string) bool { return _islocalhost(m, ip) }
|
||||
const (
|
||||
HOSTPORT = "hostport"
|
||||
HOSTNAME = "hostname"
|
||||
|
||||
LOCALHOST = "localhost"
|
||||
)
|
||||
const HOST = "host"
|
||||
|
||||
|
@ -66,13 +66,16 @@ func _dream_show(m *ice.Message, name string) {
|
||||
// 启动任务
|
||||
m.Optionv(cli.CMD_STDERR, path.Join(p, m.Conf(DREAM, "meta.env.ctx_log")))
|
||||
m.Cmd(cli.DAEMON, m.Confv(DREAM, "meta.cmd"), "self", name)
|
||||
m.Event(DREAM_CREATE, kit.MDB_TYPE, m.Option(kit.MDB_TYPE), kit.MDB_NAME, name)
|
||||
m.Sleep("1s")
|
||||
}
|
||||
m.Cmdy(nfs.DIR, p)
|
||||
}
|
||||
|
||||
const (
|
||||
DREAM_START = "dream.start"
|
||||
DREAM_STOP = "dream.stop"
|
||||
DREAM_CREATE = "dream.create"
|
||||
DREAM_START = "dream.start"
|
||||
DREAM_STOP = "dream.stop"
|
||||
)
|
||||
const DREAM = "dream"
|
||||
|
||||
|
@ -64,6 +64,12 @@ func init() {
|
||||
m.Cmdy("web.wiki.image", "qrcode", m.Option(ice.MSG_USERWEB))
|
||||
}},
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
switch m.Option("action") {
|
||||
case "autogen":
|
||||
m.Cmdy(SPACE, m.Option(ROUTE), "web.code.autogen", "inputs", arg)
|
||||
return
|
||||
}
|
||||
|
||||
switch arg[0] {
|
||||
case "cmd":
|
||||
m.Cmdy(SPACE, m.Option(ROUTE), ctx.COMMAND)
|
||||
@ -82,9 +88,8 @@ func init() {
|
||||
m.Cmdy(SPACE, m.Option(ROUTE), "exit")
|
||||
m.Sleep("3s")
|
||||
}},
|
||||
"gen": {Name: "gen module=hi@key template=usr/icebergs/misc/zsh/zsh.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(SPACE, m.Option(ROUTE), "web.code.autogen",
|
||||
"create", "name", m.Option("module"), "from", m.Option("template"))
|
||||
"autogen": {Name: "autogen main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(SPACE, m.Option(ROUTE), "web.code.autogen", "create", arg)
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
if len(arg) == 0 || arg[0] == "" {
|
||||
@ -102,7 +107,7 @@ func init() {
|
||||
case SERVER:
|
||||
m.PushButton(gdb.START)
|
||||
case WORKER:
|
||||
m.PushButton(gdb.STOP)
|
||||
m.PushButton("autogen")
|
||||
default:
|
||||
m.PushButton("")
|
||||
}
|
||||
@ -132,7 +137,7 @@ func init() {
|
||||
} else if len(arg) > 2 { // 加载插件
|
||||
m.Cmdy(SPACE, arg[0], ctx.CONTEXT, arg[1], ctx.COMMAND, arg[2])
|
||||
m.Option("_prefix", arg[0], arg[1], arg[2], "run")
|
||||
m.Option("_process", "_field")
|
||||
m.Option(ice.MSG_PROCESS, ice.PROCESS_FIELD)
|
||||
|
||||
} else if len(arg) > 1 { // 命令列表
|
||||
m.Cmd(SPACE, arg[0], ctx.CONTEXT, arg[1], ctx.COMMAND).Table(func(index int, value map[string]string, head []string) {
|
||||
|
@ -2,6 +2,7 @@ package code
|
||||
|
||||
import (
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/cli"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/base/nfs"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
@ -60,7 +61,7 @@ func _autogen_mod(m *ice.Message, file string) (mod string) {
|
||||
m.Option(nfs.CAT_CB, func(line string, index int) {
|
||||
if strings.HasPrefix(line, "module") {
|
||||
mod = strings.Split(line, " ")[1]
|
||||
m.Info("module", mod)
|
||||
m.Info("module %s", mod)
|
||||
}
|
||||
})
|
||||
m.Cmd(nfs.CAT, "go.mod")
|
||||
@ -81,7 +82,7 @@ field "{{.Option "name"}}" web.code.{{.Option "name"}}.{{.Option "name"}}
|
||||
},
|
||||
Commands: map[string]*ice.Command{
|
||||
AUTOGEN: {Name: "autogen path auto create", Help: "生成", Action: map[string]*ice.Action{
|
||||
mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/zsh/zsh.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
if p := path.Join("src", m.Option("name"), m.Option("name")+".shy"); !kit.FileExists(p) {
|
||||
_autogen_script(m, p)
|
||||
_autogen_source(m, m.Option("name"))
|
||||
@ -91,15 +92,18 @@ field "{{.Option "name"}}" web.code.{{.Option "name"}}.{{.Option "name"}}
|
||||
_autogen_index(m, p, m.Option("from"), m.Option("name"))
|
||||
_autogen_main(m, m.Option("main"), _autogen_mod(m, "go.mod"), m.Option("name"))
|
||||
}
|
||||
m.Cmdy(cli.SYSTEM, "make")
|
||||
}},
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
switch arg[0] {
|
||||
case "main":
|
||||
m.Option(nfs.DIR_REG, ".*.go")
|
||||
m.Cmdy(nfs.DIR, "src", "path,size,time")
|
||||
m.Sort(kit.MDB_PATH)
|
||||
case "from":
|
||||
m.Option(nfs.DIR_DEEP, true)
|
||||
m.Cmdy(nfs.DIR, "usr/icebergs", "path,size,time")
|
||||
m.Option(nfs.DIR_REG, ".*.go")
|
||||
m.Cmdy(nfs.DIR, "usr/icebergs/misc/", "path,size,time")
|
||||
m.Sort(kit.MDB_PATH)
|
||||
}
|
||||
}},
|
||||
|
@ -16,6 +16,7 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
const PREPARE = "prepare"
|
||||
const INSTALL = "install"
|
||||
|
||||
func init() {
|
||||
|
8
init.go
8
init.go
@ -101,6 +101,9 @@ var Index = &Context{Name: "ice", Help: "冰山模块",
|
||||
})
|
||||
}},
|
||||
"init": {Name: "init", Help: "启动", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||
if m.target != m.target.root {
|
||||
return
|
||||
}
|
||||
m.root.Cmd(CTX_INIT)
|
||||
m.target.root.wg = &sync.WaitGroup{}
|
||||
for _, k := range kit.Split(kit.Select("gdb,log,ssh,mdb")) {
|
||||
@ -112,7 +115,10 @@ var Index = &Context{Name: "ice", Help: "冰山模块",
|
||||
"help": {Name: "help", Help: "帮助", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||
m.Echo(strings.Join(kit.Simple(m.Confv("help", "index")), "\n"))
|
||||
}},
|
||||
"exit": {Name: "exit", Help: "结束", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||
"exit": {Name: "exit restart:button", Help: "结束", Action: map[string]*Action{
|
||||
"restart": {Name: "restart", Help: "重启", Hand: func(m *Message, arg ...string) {
|
||||
}},
|
||||
}, Hand: func(m *Message, c *Context, cmd string, arg ...string) {
|
||||
m.root.target.server.(*Frame).code = kit.Int(kit.Select("0", arg, 0))
|
||||
m.Cmd("ssh.source", "etc/exit.shy", "exit.shy", "退出配置")
|
||||
m.root.Cmd(CTX_EXIT)
|
||||
|
10
misc.go
10
misc.go
@ -21,17 +21,17 @@ func (m *Message) Save(arg ...string) *Message {
|
||||
}
|
||||
}
|
||||
for _, k := range arg {
|
||||
list = append(list, kit.Keys(m.Cap(CTX_FOLLOW), k))
|
||||
list = append(list, m.Prefix(k))
|
||||
}
|
||||
m.Cmd("ctx.config", "save", kit.Keys(m.Cap(CTX_FOLLOW), "json"), list)
|
||||
m.Cmd("ctx.config", "save", m.Prefix("json"), list)
|
||||
return m
|
||||
}
|
||||
func (m *Message) Load(arg ...string) *Message {
|
||||
list := []string{}
|
||||
for _, k := range arg {
|
||||
list = append(list, kit.Keys(m.Cap(CTX_FOLLOW), k))
|
||||
list = append(list, m.Prefix(k))
|
||||
}
|
||||
m.Cmd("ctx.config", "load", kit.Keys(m.Cap(CTX_FOLLOW), "json"), list)
|
||||
m.Cmd("ctx.config", "load", m.Prefix("json"), list)
|
||||
return m
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ func (m *Message) Space(arg interface{}) []string {
|
||||
}
|
||||
|
||||
func (m *Message) PushPlugin(key string, arg ...string) *Message {
|
||||
m.Option("_process", "_field")
|
||||
m.Option(MSG_PROCESS, PROCESS_FIELD)
|
||||
m.Option("_prefix", arg)
|
||||
m.Cmdy("command", key)
|
||||
return m
|
||||
|
@ -12,6 +12,12 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
func _repos_path(name string) string {
|
||||
if wd, _ := os.Getwd(); name != path.Base(wd) {
|
||||
return path.Join("usr", name)
|
||||
}
|
||||
return "./"
|
||||
}
|
||||
func _repos_insert(m *ice.Message, name string, dir string) {
|
||||
if s, e := os.Stat(m.Option(cli.CMD_DIR, path.Join(dir, ".git"))); e == nil && s.IsDir() {
|
||||
ls := strings.SplitN(strings.Trim(m.Cmdx(cli.SYSTEM, GIT, "log", "-n1", `--pretty=format:"%ad %s"`, "--date=iso"), "\""), " ", 4)
|
||||
@ -29,7 +35,6 @@ const (
|
||||
ORIGIN = "origin"
|
||||
BRANCH = "branch"
|
||||
MASTER = "master"
|
||||
COMMIT = "commit"
|
||||
)
|
||||
const REPOS = "repos"
|
||||
|
||||
|
@ -4,6 +4,7 @@ import (
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/cli"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/core/code"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
|
||||
"path"
|
||||
@ -11,14 +12,18 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
PULL = "pull"
|
||||
PULL = "pull"
|
||||
COMPILE = "compile"
|
||||
ADD = "add"
|
||||
COMMIT = "commit"
|
||||
PUSH = "push"
|
||||
)
|
||||
const STATUS = "status"
|
||||
|
||||
func init() {
|
||||
Index.Merge(&ice.Context{
|
||||
Commands: map[string]*ice.Command{
|
||||
STATUS: {Name: "status name auto submit compile pull", Help: "代码状态", Action: map[string]*ice.Action{
|
||||
STATUS: {Name: "status name auto commit compile pull", Help: "代码状态", Action: map[string]*ice.Action{
|
||||
PULL: {Name: "pull", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(cli.PROGRESS_CB, func(cb func(name string, count, total int)) {
|
||||
count, total := 0, len(m.Confm(REPOS, kit.MDB_HASH))
|
||||
@ -34,35 +39,26 @@ func init() {
|
||||
})
|
||||
m.Cmdy(cli.PROGRESS, mdb.CREATE)
|
||||
}},
|
||||
"compile": {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
|
||||
COMPILE: {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(cli.SYSTEM, "make")
|
||||
}},
|
||||
|
||||
"add": {Name: "add", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
if strings.Contains(m.Option(kit.MDB_NAME), ":\\") {
|
||||
m.Option(cli.CMD_DIR, m.Option(kit.MDB_NAME))
|
||||
} else {
|
||||
m.Option(cli.CMD_DIR, path.Join("usr", m.Option(kit.MDB_NAME)))
|
||||
}
|
||||
m.Cmdy(cli.SYSTEM, GIT, "add", m.Option(kit.MDB_FILE))
|
||||
ADD: {Name: "add", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(cli.CMD_DIR, _repos_path(m.Option(kit.MDB_NAME)))
|
||||
m.Cmdy(cli.SYSTEM, GIT, ADD, m.Option(kit.MDB_FILE))
|
||||
}},
|
||||
"submit": {Name: "submit action=opt,add comment=some", Help: "提交", Hand: func(m *ice.Message, arg ...string) {
|
||||
COMMIT: {Name: "commit action=opt,add comment=some", Help: "提交", Hand: func(m *ice.Message, arg ...string) {
|
||||
if m.Option(kit.MDB_NAME) == "" {
|
||||
return
|
||||
}
|
||||
if strings.Contains(m.Option(kit.MDB_NAME), ":\\") {
|
||||
m.Option(cli.CMD_DIR, m.Option(kit.MDB_NAME))
|
||||
} else {
|
||||
m.Option(cli.CMD_DIR, path.Join("usr", m.Option(kit.MDB_NAME)))
|
||||
}
|
||||
m.Option(cli.CMD_DIR, _repos_path(m.Option(kit.MDB_NAME)))
|
||||
|
||||
if arg[0] == "action" {
|
||||
m.Cmdy(cli.SYSTEM, GIT, "commit", "-am", kit.Select("opt some", arg[1]+" "+arg[3]))
|
||||
m.Cmdy(cli.SYSTEM, GIT, COMMIT, "-am", kit.Select("opt some", arg[1]+" "+arg[3]))
|
||||
} else {
|
||||
m.Cmdy(cli.SYSTEM, GIT, "commit", "-am", kit.Select("opt some", strings.Join(arg, " ")))
|
||||
m.Cmdy(cli.SYSTEM, GIT, COMMIT, "-am", kit.Select("opt some", strings.Join(arg, " ")))
|
||||
}
|
||||
}},
|
||||
"push": {Name: "push", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
||||
PUSH: {Name: "push", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
||||
if m.Option(kit.MDB_NAME) == "" {
|
||||
return
|
||||
}
|
||||
@ -71,7 +67,14 @@ func init() {
|
||||
} else {
|
||||
m.Option(cli.CMD_DIR, path.Join("usr", m.Option(kit.MDB_NAME)))
|
||||
}
|
||||
m.Cmdy(cli.SYSTEM, GIT, "push")
|
||||
m.Cmdy(cli.SYSTEM, GIT, PUSH)
|
||||
}},
|
||||
|
||||
mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.AUTOGEN, mdb.CREATE, arg)
|
||||
}},
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.AUTOGEN, mdb.INPUTS, arg)
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Richs(REPOS, nil, kit.Select(kit.MDB_FOREACH, arg, 0), func(key string, value map[string]interface{}) {
|
||||
@ -83,7 +86,7 @@ func init() {
|
||||
}
|
||||
|
||||
// 更改列表
|
||||
for _, v := range strings.Split(strings.TrimSpace(m.Cmdx(cli.SYSTEM, GIT, "status", "-sb")), "\n") {
|
||||
for _, v := range strings.Split(strings.TrimSpace(m.Cmdx(cli.SYSTEM, GIT, STATUS, "-sb")), "\n") {
|
||||
vs := strings.SplitN(strings.TrimSpace(v), " ", 2)
|
||||
m.Push("name", value[kit.MDB_NAME])
|
||||
m.Push("tags", vs[0])
|
||||
@ -92,14 +95,15 @@ func init() {
|
||||
list := []string{}
|
||||
switch vs[0] {
|
||||
case "##":
|
||||
list = append(list, mdb.CREATE)
|
||||
if strings.Contains(vs[1], "ahead") {
|
||||
list = append(list, "push")
|
||||
list = append(list, PUSH)
|
||||
}
|
||||
default:
|
||||
if strings.Contains(vs[0], "??") {
|
||||
list = append(list, "add")
|
||||
list = append(list, ADD)
|
||||
} else {
|
||||
list = append(list, "submit")
|
||||
list = append(list, COMMIT)
|
||||
}
|
||||
}
|
||||
m.PushButton(strings.Join(list, ","))
|
||||
|
@ -1,14 +1,14 @@
|
||||
package lark
|
||||
|
||||
import (
|
||||
"github.com/shylinux/icebergs"
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/aaa"
|
||||
"github.com/shylinux/icebergs/base/cli"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/base/web"
|
||||
"github.com/shylinux/icebergs/core/chat"
|
||||
"github.com/shylinux/icebergs/core/wiki"
|
||||
"github.com/shylinux/toolkits"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
|
||||
"encoding/json"
|
||||
"math/rand"
|
||||
@ -98,7 +98,7 @@ var Index = &ice.Context{Name: LARK, Help: "机器人",
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Load()
|
||||
m.Cmd(web.SPIDE, mdb.CREATE, LARK, m.Conf(APP, kit.Keys(kit.MDB_META, LARK)))
|
||||
m.Cmd(DUTY, "boot", m.Conf(cli.RUNTIME, "boot.hostname"), m.Time())
|
||||
// m.Cmd(DUTY, "boot", m.Conf(cli.RUNTIME, "boot.hostname"), m.Time())
|
||||
}},
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Save()
|
||||
|
@ -52,7 +52,7 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台",
|
||||
Commands: map[string]*ice.Command{
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Load()
|
||||
m.Watch(web.DREAM_START, m.Prefix(SESSION))
|
||||
m.Watch(web.DREAM_CREATE, m.Prefix(SESSION))
|
||||
}},
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Save()
|
||||
@ -161,7 +161,7 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台",
|
||||
m.PushAction(mdb.REMOVE)
|
||||
}},
|
||||
SESSION: {Name: "session session window pane cmd auto create script", Help: "会话管理", Action: map[string]*ice.Action{
|
||||
web.DREAM_START: {Name: "dream.start type name share river", Help: "梦想", Hand: func(m *ice.Message, arg ...string) {
|
||||
web.DREAM_CREATE: {Name: "dream.create type name", Help: "梦想", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(m.Prefix(SESSION), mdb.CREATE)
|
||||
}},
|
||||
mdb.CREATE: {Name: "create name", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
@ -178,7 +178,20 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台",
|
||||
} else {
|
||||
// 创建会话
|
||||
m.Option(cli.CMD_DIR, path.Join(m.Conf(web.DREAM, kit.META_PATH), m.Option(kit.MDB_NAME)))
|
||||
m.Cmdy(cli.SYSTEM, TMUX, "new-session", "-ds", m.Option(kit.MDB_NAME))
|
||||
ls := kit.Split(m.Option(kit.MDB_NAME), "-_")
|
||||
name := ls[len(ls)-1]
|
||||
|
||||
m.Cmdy(cli.SYSTEM, TMUX, "new-session", "-ds", m.Option(kit.MDB_NAME), "-n", name)
|
||||
name = m.Option(kit.MDB_NAME) + ":" + ls[len(ls)-1]
|
||||
|
||||
m.Cmdy(cli.SYSTEM, TMUX, "split-window", "-t", kit.Keys(name, "1"), "-p", "20")
|
||||
m.Cmdy(cli.SYSTEM, TMUX, "split-window", "-t", kit.Keys(name, "2"), "-h")
|
||||
|
||||
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "3"), "ish_miss_log", "Enter")
|
||||
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "2"), "ish_miss_space dev")
|
||||
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "1"), "vi etc/miss.sh", "Enter")
|
||||
|
||||
m.Cmdy(cli.SYSTEM, TMUX, "link-window", "-s", name, "-t", "miss:")
|
||||
}
|
||||
m.Option(ice.MSG_PROCESS, "_refresh")
|
||||
}},
|
||||
|
6
type.go
6
type.go
@ -219,7 +219,7 @@ func (c *Context) _split(name string) []interface{} {
|
||||
switch kit.Value(item, kit.MDB_INPUT, ls[i+1]); ls[i+1] {
|
||||
case "textarea":
|
||||
kit.Value(item, "style.width", "360")
|
||||
kit.Value(item, "style.height", "120")
|
||||
kit.Value(item, "style.height", "60")
|
||||
case "button":
|
||||
kit.Value(item, kit.MDB_VALUE, "")
|
||||
button = true
|
||||
@ -632,6 +632,10 @@ func (m *Message) _hand(arg ...interface{}) *Message {
|
||||
m.TryCatch(m.Spawn(), true, func(msg *Message) {
|
||||
m = m.target.cmd(msg, cmd, list[0], list[1:]...)
|
||||
})
|
||||
} else if cmd, ok := m.source.Commands[list[0]]; ok {
|
||||
m.TryCatch(m.Spawn(m.source), true, func(msg *Message) {
|
||||
m = m.source.cmd(msg, cmd, list[0], list[1:]...)
|
||||
})
|
||||
} else {
|
||||
m.Search(list[0], func(p *Context, s *Context, key string, cmd *Command) {
|
||||
m.TryCatch(m.Spawn(s), true, func(msg *Message) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user