From d86c6db791b22d707e008e914e1e23b1d59b8054 Mon Sep 17 00:00:00 2001 From: shylinux Date: Thu, 2 Mar 2023 20:38:20 +0800 Subject: [PATCH] opt some --- base/cli/runtime.go | 1 - base/gdb/signal.go | 2 +- base/log/debug.go | 13 ++++++++----- base/log/log.go | 2 +- base/nfs/cat.go | 2 +- base/tcp/tcp.go | 4 ++++ base/web/broad.go | 9 +++++---- base/web/spide.go | 2 +- core/code/compile.go | 1 + misc/git/status.go | 2 +- misc/tmux/session.go | 2 +- render.go | 11 +++++++---- 12 files changed, 31 insertions(+), 20 deletions(-) diff --git a/base/cli/runtime.go b/base/cli/runtime.go index 0b6944b1..b8c21c13 100644 --- a/base/cli/runtime.go +++ b/base/cli/runtime.go @@ -153,7 +153,6 @@ func init() { Index.MergeCommands(ice.Commands{ RUNTIME: {Name: "runtime info=bootinfo,ifconfig,hostinfo,hostname,userinfo,procinfo,diskinfo,api,cli,cmd,env,path,chain auto upgrade", Help: "运行环境", Actions: ice.MergeActions(ice.Actions{ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m) }}, - ice.CTX_EXIT: {Hand: func(m *ice.Message, arg ...string) { m.Conf("", "", nil) }}, IFCONFIG: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy("tcp.host") }}, HOSTINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_hostinfo(m) }}, HOSTNAME: {Hand: func(m *ice.Message, arg ...string) { diff --git a/base/gdb/signal.go b/base/gdb/signal.go index 4ad91874..c41736da 100644 --- a/base/gdb/signal.go +++ b/base/gdb/signal.go @@ -64,7 +64,7 @@ func init() { if f, p, e := logs.CreateFile(ice.Info.PidPath); e == nil { defer f.Close() fmt.Fprint(f, os.Getpid()) - m.Logs(mdb.CREATE, PID, p) + m.Logs("save", PID, p) } }}, LISTEN: {Name: "listen signal name cmd", Help: "监听", Hand: func(m *ice.Message, arg ...string) { diff --git a/base/log/debug.go b/base/log/debug.go index 9e3b690b..0d56f01f 100644 --- a/base/log/debug.go +++ b/base/log/debug.go @@ -15,12 +15,13 @@ const DEBUG = "debug" func init() { Index.MergeCommands(ice.Commands{ - DEBUG: {Name: "debug level=watch,bench,watch,error,trace offset filter auto doc", Help: "后台日志", Actions: ice.Actions{ + DEBUG: {Name: "debug level=watch,bench,debug,error,watch offset filter auto doc", Help: "后台日志", Actions: ice.Actions{ "doc": {Help: "文档", Hand: func(m *ice.Message, arg ...string) { m.ProcessOpen("https://pkg.go.dev/std") }}, }, Hand: func(m *ice.Message, arg ...string) { offset := kit.Int(kit.Select("0", arg, 1)) + stats := map[string]int{} switch arg[0] { - case "bench", ERROR, "trace": + case BENCH, ERROR, DEBUG: m.Cmd(nfs.CAT, ice.VAR_LOG+arg[0]+".log", func(line string, index int) { if len(arg) > 2 && !strings.Contains(line, arg[2]) || index < offset { return @@ -29,12 +30,12 @@ func init() { m.Push(mdb.TIME, ls[0]+ice.SP+ls[1]) m.Push(mdb.ID, ls[2]) i := strings.LastIndex(ls[5], ice.SP) - if strings.HasPrefix(ls[5][i+1:], "base") || strings.HasPrefix(ls[5][i+1:], "core") || strings.HasPrefix(ls[5][i+1:], "misc") { + if strings.HasPrefix(ls[5][i+1:], ice.BASE) || strings.HasPrefix(ls[5][i+1:], ice.CORE) || strings.HasPrefix(ls[5][i+1:], ice.MISC) { m.Push(nfs.PATH, ice.USR_ICEBERGS) m.Push(nfs.FILE, strings.TrimSpace(strings.Split(ls[5][i:], ice.DF)[0])) m.Push(nfs.LINE, strings.TrimSpace(strings.Split(ls[5][i:], ice.DF)[1])) ls[5] = ls[5][:i] - } else if strings.HasPrefix(ls[5][i+1:], "usr/icebergs/") { + } else if strings.HasPrefix(ls[5][i+1:], ice.USR_ICEBERGS) { m.Push(nfs.PATH, ice.USR_ICEBERGS) m.Push(nfs.FILE, strings.TrimPrefix(strings.TrimSpace(strings.Split(ls[5][i:], ice.DF)[0]), ice.USR_ICEBERGS)) m.Push(nfs.LINE, strings.TrimSpace(strings.Split(ls[5][i:], ice.DF)[1])) @@ -57,6 +58,7 @@ func init() { m.Push("ship", ls[3]) m.Push(ctx.ACTION, ls[4]) m.Push(mdb.TEXT, ls[5]) + stats[ls[4]]++ }) case WATCH: m.Cmd(nfs.CAT, ice.VAR_LOG+arg[0]+".log", func(line string, index int) { @@ -75,9 +77,10 @@ func init() { m.Push(ctx.ACTION, ls[4]) m.Push(mdb.TEXT, ls[5][:i]) + stats[ls[4]]++ }) } - m.StatusTimeCountTotal(offset + m.Length()) + m.StatusTimeCountTotal(offset+m.Length(), stats) }}, }) } diff --git a/base/log/log.go b/base/log/log.go index dd20a2fa..2b70c4f3 100644 --- a/base/log/log.go +++ b/base/log/log.go @@ -109,7 +109,7 @@ var Index = &ice.Context{Name: LOG, Help: "日志模块", Configs: ice.Configs{ if f, p, e := logs.CreateFile(kit.Format(value[nfs.PATH])); e == nil { m.Cap(ice.CTX_STREAM, path.Base(p)) value[FILE] = bufio.NewWriter(f) - m.Logs(mdb.CREATE, nfs.FILE, p) + m.Logs(nfs.SAVE, nfs.FILE, p) } }) m.Confm(VIEW, nil, func(key string, value ice.Map) { diff --git a/base/nfs/cat.go b/base/nfs/cat.go index 19d1ea0f..7dfa7f2d 100644 --- a/base/nfs/cat.go +++ b/base/nfs/cat.go @@ -68,7 +68,7 @@ func _cat_list(m *ice.Message, file string) { buf, size := make([]byte, 10*ice.MOD_BUFS), 0 for { if n, e := f.Read(buf[size:]); !m.Warn(e, ice.ErrNotValid, file) { - m.Logs(mdb.IMPORT, FILE, file, SIZE, n) + m.Logs(LOAD, FILE, file, SIZE, n) if size += n; size < len(buf) { buf = buf[:size] break diff --git a/base/tcp/tcp.go b/base/tcp/tcp.go index 0cac8605..056611a2 100644 --- a/base/tcp/tcp.go +++ b/base/tcp/tcp.go @@ -10,6 +10,10 @@ import ( kit "shylinux.com/x/toolkits" ) +const ( + SEND = "send" + RECV = "recv" +) const TCP = "tcp" var Index = &ice.Context{Name: TCP, Help: "通信模块"} diff --git a/base/web/broad.go b/base/web/broad.go index 574b790d..b92c8ea7 100644 --- a/base/web/broad.go +++ b/base/web/broad.go @@ -8,6 +8,7 @@ import ( "shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/mdb" + "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/tcp" kit "shylinux.com/x/toolkits" "shylinux.com/x/toolkits/logs" @@ -23,7 +24,7 @@ func _broad_send(m *ice.Message, host, port string, remote_host, remote_port str if s, e := net.DialUDP("udp4", nil, _broad_addr(m, remote_host, remote_port)); !m.Warn(e, ice.ErrNotValid) { defer s.Close() msg := m.Spawn(kit.Dict(tcp.HOST, host, tcp.PORT, port), kit.Dict(arg)) - m.Logs(mdb.EXPORT, BROAD, msg.FormatMeta(), "to", remote_host+ice.DF+remote_port) + m.Logs(tcp.SEND, BROAD, msg.FormatMeta(), nfs.TO, remote_host+ice.DF+remote_port) s.Write([]byte(msg.FormatMeta())) } } @@ -41,7 +42,7 @@ func _broad_serve(m *ice.Message, port string) { if e != nil { break } - m.Logs(mdb.IMPORT, BROAD, string(buf[:n]), "from", from) + m.Logs(tcp.RECV, BROAD, string(buf[:n]), nfs.FROM, from) msg := m.Spawn(buf[:n]) if msg.Option(mdb.ZONE) == "echo" { _broad_save(m, msg) @@ -49,7 +50,7 @@ func _broad_serve(m *ice.Message, port string) { } if remote := _broad_addr(m, msg.Option(tcp.HOST), msg.Option(tcp.PORT)); remote != nil { m.Cmd(BROAD, func(value ice.Maps) { - m.Logs(mdb.EXPORT, BROAD, kit.Format(value), "to", kit.Format(remote)) + m.Logs(tcp.SEND, BROAD, kit.Format(value), nfs.TO, kit.Format(remote)) s.WriteToUDP([]byte(m.Spawn(value, kit.Dict(mdb.ZONE, "echo")).FormatMeta()), remote) }) _broad_save(m, msg) @@ -98,7 +99,7 @@ func init() { OPEN: {Hand: func(m *ice.Message, arg ...string) { ctx.ProcessOpen(m, kit.Format("http://%s:%s", m.Option(tcp.HOST), m.Option(tcp.PORT))) }}, - "send": {Hand: func(m *ice.Message, arg ...string) { + tcp.SEND: {Hand: func(m *ice.Message, arg ...string) { _broad_send(m, "", "", "255.255.255.255", "9020", arg...) }}, }, mdb.HashAction(mdb.SHORT, "host,port", mdb.FIELD, "time,hash,type,name,host,port", mdb.ACTION, OPEN), mdb.ClearHashOnExitAction())}, diff --git a/base/web/spide.go b/base/web/spide.go index 04e13079..b08e8729 100644 --- a/base/web/spide.go +++ b/base/web/spide.go @@ -23,7 +23,7 @@ import ( func _spide_create(m *ice.Message, name, address string) { if uri, e := url.Parse(address); !m.Warn(e != nil || address == "", ice.ErrNotValid, address) { - m.Logs(mdb.CREATE, SPIDE, name, ADDRESS, address) + m.Logs(mdb.INSERT, SPIDE, name, ADDRESS, address) mdb.HashSelectUpdate(m, mdb.HashCreate(m, CLIENT_NAME, name), func(value ice.Map) { dir, file := path.Split(uri.EscapedPath()) value[SPIDE_CLIENT] = kit.Dict(mdb.NAME, name, SPIDE_METHOD, http.MethodPost, "url", address, "origin", uri.Scheme+"://"+uri.Host, diff --git a/core/code/compile.go b/core/code/compile.go index 93df12e2..c7bb29ea 100644 --- a/core/code/compile.go +++ b/core/code/compile.go @@ -71,6 +71,7 @@ func init() { if strings.Contains(file, ice.ICE) { m.Cmdy(PUBLISH, ice.CONTEXTS) } + m.StatusTime("version", strings.TrimPrefix(m.Cmdx(cli.SYSTEM, GO, "version"), "go version ")) }}, }) } diff --git a/misc/git/status.go b/misc/git/status.go index cfb8189e..6a0711b5 100644 --- a/misc/git/status.go +++ b/misc/git/status.go @@ -325,7 +325,7 @@ func init() { defer web.ToastProcess(m)() files, adds, dels, last := _status_list(m) m.StatusTimeCount("files", files, "adds", adds, "dels", dels, "last", last.Format(ice.MOD_TIME)) - m.Action(PULL, PUSH, TAGS, PIE, code.COMPILE, code.PUBLISH, "insteadof") + m.Action(PULL, PUSH, "insteadof") m.Sort("repos,type,file") } else { _repos_cmd(m, arg[0], DIFF) diff --git a/misc/tmux/session.go b/misc/tmux/session.go index 8352cad4..91b8afb7 100644 --- a/misc/tmux/session.go +++ b/misc/tmux/session.go @@ -77,7 +77,7 @@ func init() { FIELDS, "id,tag,pane,tty,height,width,cmd", )}, }, Commands: ice.Commands{ - SESSION: {Name: "session session window pane cmd auto", Help: "会话管理", Actions: ice.MergeActions(ice.Actions{ + SESSION: {Name: "session session window pane cmds auto", Help: "会话管理", Actions: ice.MergeActions(ice.Actions{ web.DREAM_CREATE: {Hand: func(m *ice.Message, arg ...string) { m.Cmd("", mdb.CREATE) }}, mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { if m.Option(ctx.ACTION) == SCRIPT { diff --git a/render.go b/render.go index 33466efe..b9efdfc3 100644 --- a/render.go +++ b/render.go @@ -37,12 +37,15 @@ func Render(m *Message, cmd string, args ...Any) string { break } for _, k := range kit.Split(k) { - list = append(list, kit.Format(``, k, - kit.Select(k, kit.Value(m._cmd.Meta, kit.Keys("_trans", k)), m.Option(MSG_LANGUAGE) != "en"))) + list = append(list, kit.Format(``, + // k, kit.Select(k, kit.Value(m._cmd.Meta, kit.Keys("_trans", k)), m.Option(MSG_LANGUAGE) != "en"))) + k, k)) } case Map: - for k, v := range k { - list = append(list, kit.Format(``, k, kit.Select(k, v, m.Option(MSG_LANGUAGE) != "en"))) + for k := range k { + list = append(list, kit.Format(``, + k, k)) + // k, kit.Select(k, v, m.Option(MSG_LANGUAGE) != "en"))) } default: list = append(list, Render(m, RENDER_BUTTON, kit.Format(k)))