From e120cc524d0538b434113ab6098f3d56a785e739 Mon Sep 17 00:00:00 2001 From: shaoying Date: Fri, 22 Jan 2021 19:37:21 +0800 Subject: [PATCH] opt some --- base/aaa/user.go | 4 ++-- base/cli/output.go | 1 + base/ctx/command.go | 5 ++++- base/mdb/search.go | 2 +- base/web/dream.go | 4 ++++ core/chat/header.go | 10 ++++++++++ core/chat/river.go | 12 +++++++++++- core/team/task.go | 6 ++++++ misc.go | 4 +++- misc/git/status.go | 26 ++++++++++++++------------ type.go | 2 +- 11 files changed, 57 insertions(+), 19 deletions(-) diff --git a/base/aaa/user.go b/base/aaa/user.go index 0c11ba1a..8062c677 100644 --- a/base/aaa/user.go +++ b/base/aaa/user.go @@ -38,8 +38,8 @@ func _user_search(m *ice.Message, kind, name, text string, arg ...string) { if name != "" && name != val[USERNAME] { return } - m.PushSearch("cmd", USER, "type", kit.Format(UserRole(m, val[USERNAME])), - "name", kit.Format(val[USERNICK]), "text", kit.Format(val[USERNAME])) + m.PushSearch(kit.SSH_CMD, USER, kit.MDB_TYPE, kit.Format(UserRole(m, val[USERNAME])), + kit.MDB_NAME, kit.Format(val[USERNICK]), kit.MDB_TEXT, kit.Format(val[USERNAME]), val) }) } diff --git a/base/cli/output.go b/base/cli/output.go index d3dabeaa..3d5a8028 100644 --- a/base/cli/output.go +++ b/base/cli/output.go @@ -24,6 +24,7 @@ func _cli_progress(m *ice.Message, cb interface{}) { switch cb := cb.(type) { case func(cb func(name string, count, total int)): cb(func(name string, count, total int) { + m.Debug("what %v", name) m.Cmd(mdb.MODIFY, PROGRESS, "", mdb.HASH, kit.MDB_HASH, h, "name", name, "step", count*100/total, "count", count, "total", total) }) diff --git a/base/ctx/command.go b/base/ctx/command.go index a37d6699..b2afef01 100644 --- a/base/ctx/command.go +++ b/base/ctx/command.go @@ -22,7 +22,10 @@ func _command_search(m *ice.Message, kind, name, text string) { return } - m.PushSearch(kit.SSH_CMD, COMMAND, kit.MDB_TYPE, kind, kit.MDB_NAME, key, kit.MDB_TEXT, s.Cap(ice.CTX_FOLLOW)) + m.PushSearch(kit.SSH_CMD, COMMAND, + "context", s.Cap(ice.CTX_FOLLOW), "command", key, + kit.MDB_TYPE, kind, kit.MDB_NAME, key, kit.MDB_TEXT, s.Cap(ice.CTX_FOLLOW), + ) }) } func _command_list(m *ice.Message, name string) { diff --git a/base/mdb/search.go b/base/mdb/search.go index 01fe085d..15b2e395 100644 --- a/base/mdb/search.go +++ b/base/mdb/search.go @@ -27,7 +27,7 @@ func init() { return } - m.Option(FIELDS, kit.Select("pod,ctx,cmd,time,size,type,name,text", kit.Select(m.Option(FIELDS), arg, 2))) + m.Option(FIELDS, kit.Select("ctx,cmd,time,size,type,name,text", kit.Select(m.Option(FIELDS), arg, 2))) for _, k := range strings.Split(arg[0], ",") { for _, kk := range strings.Split(arg[1], ",") { m.Richs(SEARCH, nil, k, func(key string, value map[string]interface{}) { diff --git a/base/web/dream.go b/base/web/dream.go index eddd2215..b76a84f5 100644 --- a/base/web/dream.go +++ b/base/web/dream.go @@ -33,6 +33,7 @@ func _dream_show(m *ice.Message, name string) { if !strings.Contains(name, "-") || !strings.HasPrefix(name, "20") { name = m.Time("20060102-") + strings.ReplaceAll(name, "-", "_") } + m.Option("name", name) // 任务目录 p := path.Join(m.Conf(DREAM, kit.META_PATH), name) @@ -100,6 +101,9 @@ func init() { switch arg[0] { case kit.MDB_NAME: m.Cmdy(nfs.DIR, m.Conf(DREAM, kit.META_PATH), "name,time") + case kit.SSH_TEMPLATE: + m.Cmdy(nfs.DIR, m.Conf(DREAM, kit.META_PATH), "path,size,time") + m.SortStrR(kit.MDB_PATH) } }}, 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) { diff --git a/core/chat/header.go b/core/chat/header.go index 269e54ca..34b64733 100644 --- a/core/chat/header.go +++ b/core/chat/header.go @@ -29,6 +29,16 @@ func init() { m.Echo(m.Option(ice.MSG_USERNAME)) }}, CHECK: {Name: "check", Help: "登录检查", Hand: func(m *ice.Message, arg ...string) { + if m.Option(web.SHARE) != "" { + switch msg := m.Cmd(web.SHARE, m.Option(web.SHARE)); msg.Append(kit.MDB_TYPE) { + case web.LOGIN: + if m.Option(ice.MSG_SESSID) == "" { + m.Option(ice.MSG_SESSID, aaa.SessCreate(m, msg.Append(aaa.USERNAME), msg.Append(aaa.USERROLE))) + web.Render(m, web.COOKIE, m.Option(ice.MSG_SESSID)) + } + } + } + m.Option("sso", m.Conf(web.SERVE, "meta.sso")) m.Echo(m.Option(ice.MSG_USERNAME)) }}, diff --git a/core/chat/river.go b/core/chat/river.go index ea525d93..af77041f 100644 --- a/core/chat/river.go +++ b/core/chat/river.go @@ -5,6 +5,7 @@ import ( "github.com/shylinux/icebergs/base/aaa" "github.com/shylinux/icebergs/base/ctx" "github.com/shylinux/icebergs/base/mdb" + "github.com/shylinux/icebergs/base/tcp" "github.com/shylinux/icebergs/base/web" "github.com/shylinux/icebergs/core/code" "github.com/shylinux/icebergs/core/wiki" @@ -314,6 +315,12 @@ func init() { m.EchoAnchor(m.Option(ice.MSG_USERWEB)) }}, mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { + switch m.Option("action") { + case "start": + m.Cmdy(web.DREAM, kit.MDB_ACTION, mdb.INPUTS, arg) + return + } + switch arg[0] { case aaa.USERNAME: m.Cmdy(aaa.USER) @@ -329,7 +336,10 @@ func init() { } }}, web.SHARE: {Name: "share type name", Help: "共享", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(web.SHARE, mdb.CREATE, kit.MDB_TYPE, "login", arg) + m.Cmdy(web.SHARE, mdb.CREATE, kit.MDB_TYPE, LOGIN, arg) + }}, + tcp.START: {Name: "start name repos template", Help: "启动", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(web.DREAM, tcp.START, arg) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Cmdy(mdb.SELECT, RIVER, "", mdb.HASH, kit.MDB_HASH, arg) diff --git a/core/team/task.go b/core/team/task.go index fa9ca181..7d0de19d 100644 --- a/core/team/task.go +++ b/core/team/task.go @@ -4,6 +4,7 @@ import ( ice "github.com/shylinux/icebergs" "github.com/shylinux/icebergs/base/gdb" "github.com/shylinux/icebergs/base/mdb" + "github.com/shylinux/icebergs/base/web" kit "github.com/shylinux/toolkits" "strings" @@ -186,6 +187,7 @@ func init() { }}, mdb.SEARCH: {Name: "search", Help: "搜索", Hand: func(m *ice.Message, arg ...string) { _task_search(m, arg[0], arg[1], arg[2]) + m.PushPodCmd(TASK, kit.Simple(mdb.SEARCH, arg)...) }}, gdb.BEGIN: {Name: "begin", Help: "开始", Hand: func(m *ice.Message, arg ...string) { @@ -195,6 +197,10 @@ func init() { _task_modify(m, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), TaskField.STATUS, TaskStatus.FINISH) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { + if m.Option(kit.SSH_POD) != "" { + m.Cmdy(web.SPACE, m.Option(kit.SSH_POD), m.Prefix(TASK), arg) + return + } _task_list(m, kit.Select("", arg, 0), kit.Select("", arg, 1)) }}, }, diff --git a/misc.go b/misc.go index 0c8b2b30..c4a6bf55 100644 --- a/misc.go +++ b/misc.go @@ -85,7 +85,7 @@ func (m *Message) PushSearch(args ...interface{}) { for _, k := range kit.Split(m.Option("fields")) { switch k { case kit.SSH_POD: - m.Push(k, kit.Select(m.Option(MSG_USERPOD), data[kit.SSH_POD])) + // m.Push(k, kit.Select(m.Option(MSG_USERPOD), data[kit.SSH_POD])) case kit.SSH_CTX: m.Push(k, m.Prefix()) case kit.SSH_CMD: @@ -219,3 +219,5 @@ func (m *Message) SortStr(key string) { m.Sort(key, "str") } func (m *Message) SortStrR(key string) { m.Sort(key, "str_r") } func (m *Message) SortTime(key string) { m.Sort(key, "time") } func (m *Message) SortTimeR(key string) { m.Sort(key, "time_r") } + +func (m *Message) FormatMeta() string { return m.Format("meta") } diff --git a/misc/git/status.go b/misc/git/status.go index a98e1179..6bd954d1 100644 --- a/misc/git/status.go +++ b/misc/git/status.go @@ -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/base/web" "github.com/shylinux/icebergs/core/code" kit "github.com/shylinux/toolkits" @@ -23,25 +24,33 @@ const STATUS = "status" func init() { Index.Merge(&ice.Context{ Commands: map[string]*ice.Command{ - STATUS: {Name: "status name auto commit compile pull", Help: "代码状态", Action: map[string]*ice.Action{ + STATUS: {Name: "status name auto pull compile create commit", 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)) { + m.Option(cli.PROGRESS_CB, func(update func(name string, count, total int)) { count, total := 0, len(m.Confm(REPOS, kit.MDB_HASH)) m.Richs(REPOS, nil, kit.Select(kit.MDB_FOREACH, arg, 0), func(key string, value map[string]interface{}) { value = kit.GetMeta(value) + update(kit.Format(value[kit.MDB_NAME]), count, total) - cb(kit.Format(value[kit.MDB_NAME]), count, total) m.Option(cli.CMD_DIR, value[kit.MDB_PATH]) m.Cmd(cli.SYSTEM, GIT, PULL) count++ }) - cb("", total, total) + update("", total, total) }) m.Cmdy(cli.PROGRESS, mdb.CREATE) }}, COMPILE: {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(cli.SYSTEM, "make") }}, + 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(web.SPACE, m.Option(web.ROUTE), "web.code.autogen", mdb.CREATE, arg) + m.Option(ice.MSG_PROCESS, ice.PROCESS_INNER) + }}, + mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(code.AUTOGEN, mdb.INPUTS, arg) + }}, + 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)) @@ -52,7 +61,7 @@ func init() { } m.Option(cli.CMD_DIR, _repos_path(m.Option(kit.MDB_NAME))) - if arg[0] == "action" { + if arg[0] == kit.MDB_ACTION { 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, " "))) @@ -69,13 +78,6 @@ func init() { } 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{}) { value = kit.GetMeta(value) diff --git a/type.go b/type.go index 6e2d50e8..dfb0c5da 100644 --- a/type.go +++ b/type.go @@ -366,7 +366,7 @@ func (m *Message) Format(key interface{}) string { return kit.Format(m.meta) case "append": if len(m.meta["append"]) == 0 { - return fmt.Sprintf("%dx%d %s", 0, len(m.meta["append"]), kit.Format(m.meta["append"])) + return fmt.Sprintf("%dx%d %s", 0, 0, "[]") } else { return fmt.Sprintf("%dx%d %s", len(m.meta[m.meta["append"][0]]), len(m.meta["append"]), kit.Format(m.meta["append"])) }