From 550d08092fb270fc8f5f170c68e7da2afff43125 Mon Sep 17 00:00:00 2001 From: shaoying Date: Thu, 24 Nov 2022 02:04:42 +0800 Subject: [PATCH] opt some --- base/gdb/routine.go | 2 +- base/gdb/signal.go | 9 ++------- base/gdb/timer.go | 16 ++++++---------- base/lex/lex.shy | 4 ---- base/lex/split.go | 24 ++++++------------------ base/log/log.go | 45 ++++++++++----------------------------------- base/log/log.shy | 1 - 7 files changed, 25 insertions(+), 76 deletions(-) delete mode 100644 base/lex/lex.shy delete mode 100644 base/log/log.shy diff --git a/base/gdb/routine.go b/base/gdb/routine.go index 0bd07674..6ebcc35e 100644 --- a/base/gdb/routine.go +++ b/base/gdb/routine.go @@ -35,6 +35,6 @@ func init() { } }) }}, - }, mdb.HashStatusAction(mdb.FIELD, "time,hash,name,status,cmd"))}, + }, mdb.HashStatusAction(mdb.FIELD, "time,hash,status,name,cmd"))}, }) } diff --git a/base/gdb/signal.go b/base/gdb/signal.go index 64674a78..c2b4ef79 100644 --- a/base/gdb/signal.go +++ b/base/gdb/signal.go @@ -20,19 +20,14 @@ func _signal_listen(m *ice.Message, s int, arg ...string) { } } func _signal_action(m *ice.Message, arg ...string) { - mdb.HashSelect(m.Spawn(), arg...).Tables(func(value ice.Maps) { - m.Cmdy(kit.Split(value[ice.CMD])) - }) + mdb.HashSelect(m.Spawn(), arg...).Tables(func(value ice.Maps) { m.Cmdy(kit.Split(value[ice.CMD])) }) } func _signal_process(m *ice.Message, p string, s os.Signal) { if p == "" { b, _ := file.ReadFile(ice.Info.PidPath) p = string(b) } - if p == "" { - p = kit.Format(os.Getpid()) - } - if p, e := os.FindProcess(kit.Int(p)); e == nil { + if p, e := os.FindProcess(kit.Int(kit.Select(kit.Format(os.Getpid()), p))); e == nil { p.Signal(s) } } diff --git a/base/gdb/timer.go b/base/gdb/timer.go index 533be227..c01b4ed1 100644 --- a/base/gdb/timer.go +++ b/base/gdb/timer.go @@ -8,12 +8,12 @@ import ( kit "shylinux.com/x/toolkits" ) -func _timer_action(m *ice.Message, now time.Time, arg ...string) { +func _timer_action(m *ice.Message, now string, arg ...string) { mdb.HashSelects(m).Tables(func(value ice.Maps) { if value[mdb.COUNT] == "0" { return } - if kit.Time(value[mdb.TIME]) > kit.Int64(now) { + if value[mdb.TIME] > now { return } m.Cmd(ROUTINE, mdb.CREATE, mdb.NAME, value[mdb.NAME], kit.Keycb(ROUTINE), value[ice.CMD]) @@ -31,14 +31,10 @@ const TIMER = "timer" func init() { Index.MergeCommands(ice.Commands{ TIMER: {Name: "timer hash auto create prunes", Help: "定时器", Actions: ice.MergeActions(ice.Actions{ - mdb.CREATE: {Name: "create name=hi delay=10ms interval=10s count=3 cmd=runtime", Help: "创建"}, - mdb.PRUNES: {Name: "prunes", Help: "清理", Hand: func(m *ice.Message, arg ...string) { - mdb.HashPrunesValue(m, mdb.COUNT, "0") - }}, - HAPPEN: {Name: "happen", Help: "执行", Hand: func(m *ice.Message, arg ...string) { - _timer_action(m, time.Now(), arg...) - }}, - RESTART: {Name: "restart count=3", Help: "重启", Hand: func(m *ice.Message, arg ...string) { + mdb.CREATE: {Name: "create name=hi delay=10ms interval=10s count=3 cmd=runtime"}, + mdb.PRUNES: {Hand: func(m *ice.Message, arg ...string) { mdb.HashPrunesValue(m, mdb.COUNT, "0") }}, + HAPPEN: {Hand: func(m *ice.Message, arg ...string) { _timer_action(m, time.Now().Format(ice.MOD_TIME), arg...) }}, + RESTART: {Name: "restart count=3", Hand: func(m *ice.Message, arg ...string) { mdb.HashModify(m, m.OptionSimple(mdb.HashShort(m)), arg) }}, }, mdb.HashAction(mdb.FIELD, "time,hash,name,delay,interval,count,cmd", TICK, "10s"))}, diff --git a/base/lex/lex.shy b/base/lex/lex.shy deleted file mode 100644 index 6845e216..00000000 --- a/base/lex/lex.shy +++ /dev/null @@ -1,4 +0,0 @@ -chapter "lex" - -field "分词" lex.split - diff --git a/base/lex/split.go b/base/lex/split.go index b17c6a70..303a2599 100644 --- a/base/lex/split.go +++ b/base/lex/split.go @@ -17,7 +17,7 @@ func _split_tab(text string) (tab int) { case ' ': tab++ default: - return + break } } return @@ -38,27 +38,22 @@ func _split_list(m *ice.Message, file string, arg ...string) ice.Map { list, line := kit.List(kit.Data(DEEP, -1)), "" m.Cmd(nfs.CAT, file, func(text string) { if strings.TrimSpace(text) == "" { - return // 空行 + return } if line += text; strings.Count(text, "`")%2 == 1 { - return // 多行 + return } if strings.HasPrefix(strings.TrimSpace(text), "# ") { - return // 注释 + return } - stack, deep = _split_deep(stack, text) data := kit.Data(DEEP, deep) - - // 回调函数 ls := kit.Split(text, m.Option(SPLIT_SPACE), m.Option(SPLIT_BLOCK), m.Option(SPLIT_QUOTE), m.Option(SPLIT_TRANS)) switch cb := m.OptionCB(SPLIT).(type) { case func(int, []string): cb(deep, ls) case func(int, []string) []string: ls = cb(deep, ls) - case func(int, []string, ice.Map, ice.List): - case func(int, []string, ice.Map, ice.Map): root, _ := kit.Value(list[0], "list.0").(ice.Map) cb(deep, ls, data, root) @@ -66,28 +61,22 @@ func _split_list(m *ice.Message, file string, arg ...string) ice.Map { ls = cb(deep, ls, data) case func([]string, ice.Map) []string: ls = cb(ls, data) - case func([]string): - cb(ls) case func([]string) []string: ls = cb(ls) + case func([]string): + cb(ls) case nil: default: m.ErrorNotImplement(cb) } - - // 参数字段 for _, k := range arg { if kit.Value(data, kit.Keym(k), kit.Select("", ls, 0)); len(ls) > 0 { ls = ls[1:] } } - - // 属性字段 for i := 0; i < len(ls)-1; i += 2 { kit.Value(data, kit.Keym(ls[i]), ls[i+1]) } - - // 查找节点 for i := len(list) - 1; i >= 0; i-- { if deep > kit.Int(kit.Value(list[i], kit.Keym(DEEP))) { kit.Value(list[i], kit.Keys(mdb.LIST, "-2"), data) @@ -120,7 +109,6 @@ func init() { }}, }) } - func Split(m *ice.Message, arg ...string) ice.Map { return kit.Value(_split_list(m, arg[0], arg[1:]...), kit.Keys(mdb.LIST, "0")).(ice.Map) } diff --git a/base/log/log.go b/base/log/log.go index cf20553b..06cb5ad2 100644 --- a/base/log/log.go +++ b/base/log/log.go @@ -20,14 +20,9 @@ type Log struct { type Frame struct{ p chan *Log } -func (f *Frame) Spawn(m *ice.Message, c *ice.Context, arg ...string) ice.Server { - return &Frame{} -} func (f *Frame) Begin(m *ice.Message, arg ...string) ice.Server { f.p = make(chan *Log, ice.MOD_BUFS) - ice.Info.Log = func(msg *ice.Message, p, l, s string) { - f.p <- &Log{m: msg, p: p, l: l, s: s} - } + ice.Info.Log = func(m *ice.Message, p, l, s string) { f.p <- &Log{m: m, p: p, l: l, s: s} } return f } func (f *Frame) Start(m *ice.Message, arg ...string) bool { @@ -37,18 +32,15 @@ func (f *Frame) Start(m *ice.Message, arg ...string) bool { if !ok { return true } - for _, file := range []string{m.Conf(SHOW, kit.Keys(l.l, FILE)), BENCH} { if file == "" { continue } - view := m.Confm(VIEW, m.Conf(SHOW, kit.Keys(l.l, VIEW))) bio := m.Confv(FILE, kit.Keys(file, FILE)).(*bufio.Writer) if bio == nil { continue } - bio.WriteString(l.p) bio.WriteString(ice.SP) if ice.Info.Colors == true { @@ -76,6 +68,7 @@ func (f *Frame) Close(m *ice.Message, arg ...string) bool { close(f.p) return true } +func (f *Frame) Spawn(m *ice.Message, c *ice.Context, arg ...string) ice.Server { return &Frame{} } const ( PREFIX = "prefix" @@ -102,42 +95,24 @@ var Index = &ice.Context{Name: "log", Help: "日志模块", Configs: ice.Configs FILE: {Name: FILE, Help: "日志文件", Value: kit.Dict( BENCH, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "bench.log"), mdb.LIST, []string{}), WATCH, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "watch.log"), mdb.LIST, []string{ - mdb.CREATE, mdb.REMOVE, - mdb.INSERT, mdb.DELETE, - mdb.MODIFY, mdb.SELECT, - mdb.EXPORT, mdb.IMPORT, - }), - ERROR, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "error.log"), mdb.LIST, []string{ - ice.LOG_WARN, ice.LOG_ERROR, - }), - TRACE, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "trace.log"), mdb.LIST, []string{ - ice.LOG_DEBUG, + mdb.CREATE, mdb.REMOVE, mdb.INSERT, mdb.DELETE, mdb.MODIFY, mdb.SELECT, mdb.EXPORT, mdb.IMPORT, }), + ERROR, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "error.log"), mdb.LIST, []string{ice.LOG_WARN, ice.LOG_ERROR}), + TRACE, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "trace.log"), mdb.LIST, []string{ice.LOG_DEBUG}), )}, VIEW: {Name: VIEW, Help: "日志格式", Value: kit.Dict( - GREEN, kit.Dict(PREFIX, "\033[32m", SUFFIX, "\033[0m", mdb.LIST, []string{ - ice.CTX_START, ice.LOG_CMDS, - }), - YELLOW, kit.Dict(PREFIX, "\033[33m", SUFFIX, "\033[0m", mdb.LIST, []string{ - ice.LOG_AUTH, ice.LOG_COST, - }), - RED, kit.Dict(PREFIX, "\033[31m", SUFFIX, "\033[0m", mdb.LIST, []string{ - ice.CTX_CLOSE, ice.LOG_WARN, - }), + GREEN, kit.Dict(PREFIX, "\033[32m", SUFFIX, "\033[0m", mdb.LIST, []string{ice.CTX_START, ice.LOG_CMDS}), + YELLOW, kit.Dict(PREFIX, "\033[33m", SUFFIX, "\033[0m", mdb.LIST, []string{ice.LOG_AUTH, ice.LOG_COST}), + RED, kit.Dict(PREFIX, "\033[31m", SUFFIX, "\033[0m", mdb.LIST, []string{ice.CTX_CLOSE, ice.LOG_WARN}), )}, SHOW: {Name: SHOW, Help: "日志分流", Value: kit.Dict()}, }, Commands: ice.Commands{ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { m.Confm(VIEW, nil, func(key string, value ice.Map) { - kit.Fetch(value[mdb.LIST], func(index int, k string) { - m.Conf(SHOW, kit.Keys(k, VIEW), key) - }) + kit.Fetch(value[mdb.LIST], func(index int, k string) { m.Conf(SHOW, kit.Keys(k, VIEW), key) }) }) m.Confm(FILE, nil, func(key string, value ice.Map) { - kit.Fetch(value[mdb.LIST], func(index int, k string) { - m.Conf(SHOW, kit.Keys(k, FILE), key) - }) - // 日志文件 + kit.Fetch(value[mdb.LIST], func(index int, k string) { m.Conf(SHOW, kit.Keys(k, FILE), key) }) 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) diff --git a/base/log/log.shy b/base/log/log.shy deleted file mode 100644 index 5d200af3..00000000 --- a/base/log/log.shy +++ /dev/null @@ -1 +0,0 @@ -chapter "log"