1
0
mirror of https://shylinux.com/x/icebergs synced 2025-05-03 03:57:01 +08:00

opt route

This commit is contained in:
harveyshao 2021-11-30 05:13:23 +08:00
parent be8e8e67e6
commit 15b92fb167
4 changed files with 24 additions and 11 deletions

View File

@ -9,7 +9,7 @@ import (
func _context_list(m *ice.Message, sub *ice.Context, name string) {
m.Travel(func(p *ice.Context, s *ice.Context) {
if name != "" && !strings.HasPrefix(s.Cap(ice.CTX_FOLLOW), name+ice.PT) {
if name != "" && name != "ice" && !strings.HasPrefix(s.Cap(ice.CTX_FOLLOW), name+ice.PT) {
return
}
m.Push(kit.MDB_NAME, s.Cap(ice.CTX_FOLLOW))

View File

@ -112,16 +112,29 @@ func init() {
m.ProcessInner()
}},
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
m.Debug(m.Option(ROUTE))
m.Cmdy(SPACE, m.Option(ROUTE), kit.Keys(m.Option(ice.CTX), m.Option(ice.CMD)), arg)
}},
ice.RUN: {Name: "run", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(SPACE, m.Option(ROUTE), arg)
}},
"spide": {Name: "spide", Help: "架构图", Hand: func(m *ice.Message, arg ...string) {
if len(arg) == 0 { // 模块列表
m.Cmdy(ROUTE)
if m.Option("route") == "" { // 机器列表 route
m.Cmdy(ROUTE).Cut("route")
m.Display("/plugin/story/spide.js", "root", ice.ICE, "field", "route", "split", ice.PT, "prefix", "spide")
m.StatusTimeCount()
return
}
if m.Option("context") == "" { // 模块列表 context
m.Cmdy(SPACE, m.Option("route"), ctx.CONTEXT, "ice", "context")
m.Cut("name").RenameAppend("name", "context")
return
}
if m.Option("name") == "" { // 命令列表 name
m.Cmdy(SPACE, m.Option("route"), ctx.CONTEXT, "spide", "", m.Option("context"), m.Option("context"))
m.Cut("name")
return
}
// 命令详情 index name help meta list
m.Cmdy(SPACE, m.Option("route"), ctx.CONTEXT, "spide", "", m.Option("context"), m.Option("name"))
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if len(arg) == 0 || arg[0] == "" { // 路由列表

View File

@ -77,6 +77,9 @@ func (m *Message) Add(key string, arg ...string) *Message {
m.meta[MSG_OPTION][i] = ""
delete(m.meta, arg[0])
}
if kit.IndexOf(m.meta[key], arg[0]) == -1 {
m.meta[arg[0]] = []string{}
}
}
if kit.IndexOf(m.meta[key], arg[0]) == -1 {
@ -190,12 +193,6 @@ func (m *Message) Copy(msg *Message, arg ...string) *Message {
m.Add(MSG_OPTION, kit.Simple(k, msg.meta[k])...)
}
}
for _, k := range msg.meta[MSG_APPEND] {
if i := kit.IndexOf(m.meta[MSG_OPTION], k); i > -1 {
m.meta[MSG_OPTION][i] = ""
delete(m.meta, k)
}
}
for _, k := range msg.meta[MSG_APPEND] {
m.Add(MSG_APPEND, kit.Simple(k, msg.meta[k])...)
}

View File

@ -110,6 +110,9 @@ func (m *Message) OptionCB(key string, cb ...interface{}) interface{} {
func (m *Message) OptionUserWeb() *url.URL {
return kit.ParseURL(m.Option(MSG_USERWEB))
}
func (m *Message) SetAppend(arg ...string) *Message {
return m.Set(MSG_APPEND, arg...)
}
func (m *Message) RenameAppend(from, to string) {
for i, v := range m.meta[MSG_APPEND] {
if v == from {