From 15b92fb1677b1d325e15a0bc5f620475b241f280 Mon Sep 17 00:00:00 2001 From: harveyshao Date: Tue, 30 Nov 2021 05:13:23 +0800 Subject: [PATCH] opt route --- base/ctx/context.go | 2 +- base/web/route.go | 21 +++++++++++++++++---- meta.go | 9 +++------ misc.go | 3 +++ 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/base/ctx/context.go b/base/ctx/context.go index 699ba2e9..f25da1a2 100644 --- a/base/ctx/context.go +++ b/base/ctx/context.go @@ -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)) diff --git a/base/web/route.go b/base/web/route.go index 02133855..b780c55d 100644 --- a/base/web/route.go +++ b/base/web/route.go @@ -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] == "" { // 路由列表 diff --git a/meta.go b/meta.go index c4abb96b..76303874 100644 --- a/meta.go +++ b/meta.go @@ -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])...) } diff --git a/misc.go b/misc.go index 7b5adefd..6795fe13 100644 --- a/misc.go +++ b/misc.go @@ -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 {