From 65697070f4a4b35b85dd54d4c9144b5de4180410 Mon Sep 17 00:00:00 2001 From: shy Date: Wed, 17 Apr 2024 04:15:19 +0800 Subject: [PATCH] opt some --- base/cli/daemon.go | 2 +- base/cli/runtime.go | 2 +- base/mdb/hash.go | 4 ++-- base/mdb/mdb.go | 2 ++ base/nfs/dir.go | 1 + base/web/serve.go | 18 ++++++------------ lock.go | 4 ++-- meta.go | 10 ++++++++++ 8 files changed, 25 insertions(+), 18 deletions(-) diff --git a/base/cli/daemon.go b/base/cli/daemon.go index a1c84991..3ec69c2a 100644 --- a/base/cli/daemon.go +++ b/base/cli/daemon.go @@ -30,7 +30,7 @@ func _daemon_exec(m *ice.Message, cmd *exec.Cmd) { cmd.Stderr = w } h := mdb.HashCreate(m.Spawn(), STATUS, START, - ice.CMD, kit.JoinWord(cmd.Args...), DIR, cmd.Dir, ENV, kit.Select("", cmd.Env), + ice.CMD, strings.TrimPrefix(strings.TrimPrefix(kit.JoinWord(cmd.Args...), kit.Path("")+nfs.PS), cmd.Dir+nfs.PS), DIR, cmd.Dir, ENV, kit.Select("", cmd.Env), m.OptionSimple(CMD_INPUT, CMD_OUTPUT, CMD_ERRPUT, mdb.CACHE_CLEAR_ONEXIT), ) if e := cmd.Start(); m.WarnNotValid(e, cmd.Args, err.String()) { diff --git a/base/cli/runtime.go b/base/cli/runtime.go index 48ac7595..3ef780c6 100644 --- a/base/cli/runtime.go +++ b/base/cli/runtime.go @@ -183,7 +183,7 @@ const RUNTIME = "runtime" func init() { Index.MergeCommands(ice.Commands{ RUNTIME: {Name: "runtime info=bootinfo,ifconfig,diskinfo,hostinfo,userinfo,bootinfo,role,api,cli,cmd,mod,env,path,chain auto upgrade reboot lock", Icon: "Infomation.png", Help: "运行环境", Actions: ice.MergeActions(ice.Actions{ - ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m); aaa.White(m, ice.LICENSE) }}, + ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m); }}, IFCONFIG: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(tcp.HOST) }}, DISKINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_diskinfo(m) }}, HOSTINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_hostinfo(m) }}, diff --git a/base/mdb/hash.go b/base/mdb/hash.go index 973109d2..72f37ead 100644 --- a/base/mdb/hash.go +++ b/base/mdb/hash.go @@ -131,7 +131,7 @@ func _hash_import(m *ice.Message, prefix, chain, file string) { } defer f.Close() data := Map{} - m.Assert(json.NewDecoder(f).Decode(&data)) + m.Warn(json.NewDecoder(f).Decode(&data)) m.Logs(IMPORT, KEY, path.Join(prefix, chain), FILE, kit.Keys(file, JSON), COUNT, len(data)) kit.If(m.Confv(prefix, kit.Keys(chain, HASH)) == nil, func() { m.Confv(prefix, kit.Keys(chain, HASH), ice.Map{}) }) kit.For(data, func(k string, v Any) { m.Confv(prefix, kit.Keys(chain, HASH, k), v) }) @@ -407,7 +407,7 @@ func Rich(m *ice.Message, prefix string, chain Any, data Any) string { } func sortByField(m *ice.Message, fields string, arg ...string) *ice.Message { return m.Table(func(value ice.Maps) { - m.SetAppend().OptionFields(ice.FIELDS_DETAIL) + m.SetAppend().FieldsSetDetail() kit.For(kit.Split(fields), func(key string) { key = strings.TrimSuffix(key, "*") if key == HASH { diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go index 075b91d2..f9b2b9ef 100644 --- a/base/mdb/mdb.go +++ b/base/mdb/mdb.go @@ -98,9 +98,11 @@ const ( ICONS = "icons" UNITS = "units" ORDER = "order" + SCORE = "score" GROUP = "group" VALID = "valid" ENABLE = "enable" + MEMBER = "member" DISABLE = "disable" EXPIRED = "expired" diff --git a/base/nfs/dir.go b/base/nfs/dir.go index ac9a5f0d..e158ceaa 100644 --- a/base/nfs/dir.go +++ b/base/nfs/dir.go @@ -212,6 +212,7 @@ func init() { Index.MergeCommands(ice.Commands{ DIR: {Name: "dir path auto upload app", Icon: "dir.png", Help: "文件夹", Actions: ice.Actions{ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { + aaa.White(m, ice.MAKEFILE, ice.README_MD, ice.LICENSE) aaa.White(m, ice.SRC, ice.BIN, ice.USR) aaa.Black(m, ice.USR_LOCAL) }}, diff --git a/base/web/serve.go b/base/web/serve.go index 96575d9b..5bdd7dd9 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -232,29 +232,23 @@ func init() { cli.START: {Name: "start dev proto host port=9020 nodename username usernick", Hand: func(m *ice.Message, arg ...string) { if runtime.GOOS == cli.LINUX { m.Cmd(nfs.SAVE, nfs.ETC_LOCAL_SH, m.Spawn(ice.Maps{cli.PWD: kit.Path(""), aaa.USER: kit.UserName(), ctx.ARGS: kit.JoinCmds(arg...)}).Template("local.sh")+lex.NL) + m.Cmd("", PROXY_CONF, ice.Info.NodeName) } _serve_start(m) }}, SERVE_START: {Hand: func(m *ice.Message, arg ...string) { - Count(m, m.ActionKey(), m.Option(tcp.PORT)) - m.Cmd(SPIDE, mdb.CREATE, HostPort(m, "localhost", m.Option(tcp.PORT)), ice.OPS, nfs.USR_ICONS_CONTEXTS, nfs.REPOS, "") + kit.If(m.Option(ice.DEMO) == ice.TRUE, func() { m.Cmd(CHAT_HEADER, ice.DEMO) }) + m.Go(func() { ssh.PrintQRCode(m, tcp.PublishLocalhost(m, _serve_address(m))) }) + m.Cmd(SPIDE, mdb.CREATE, HostPort(m, tcp.LOCALHOST, m.Option(tcp.PORT)), ice.OPS, nfs.USR_ICONS_CONTEXTS, nfs.REPOS, "") m.Cmds(SPIDE).Table(func(value ice.Maps) { kit.If(value[CLIENT_NAME] != ice.OPS && value[TOKEN] != "", func() { m.Cmd(SPACE, tcp.DIAL, ice.DEV, value[CLIENT_NAME], TOKEN, value[TOKEN], mdb.TYPE, SERVER) }) }) - kit.If(m.Option(ice.DEMO) == ice.TRUE, func() { m.Cmd(CHAT_HEADER, ice.DEMO) }) - switch cb := m.Optionv(SERVE_START).(type) { - case func(): + Count(m, m.ActionKey(), m.Option(tcp.PORT)) + if cb, ok := m.Optionv(SERVE_START).(func()); ok { cb() } - m.Go(func() { - cli.Opens(m, mdb.Config(m, cli.OPEN)) - ssh.PrintQRCode(m, tcp.PublishLocalhost(m, _serve_address(m))) - }) - if runtime.GOOS == cli.LINUX { - m.Cmd("", PROXY_CONF, ice.Info.NodeName) - } }}, PROXY_CONF: {Name: "proxyConf name* port host path", Hand: func(m *ice.Message, arg ...string) { if dir := m.OptionDefault(nfs.PATH, PROXY_PATH, tcp.HOST, "127.0.0.1", tcp.PORT, "9020"); nfs.Exists(m, dir) { diff --git a/lock.go b/lock.go index ec7e4074..f212c098 100644 --- a/lock.go +++ b/lock.go @@ -63,8 +63,8 @@ func (m *Message) setDetail(key string, arg ...string) *Message { m._meta[KEY][i] = m._meta[KEY][i+1] m._meta[VALUE][i] = m._meta[VALUE][i+1] } - m._meta[KEY] = m._meta[KEY][0:len(m._meta[KEY])] - m._meta[VALUE] = m._meta[VALUE][0:len(m._meta[VALUE])] + m._meta[KEY] = m._meta[KEY][0:len(m._meta[KEY])-1] + m._meta[VALUE] = m._meta[VALUE][0:len(m._meta[VALUE])-1] return m } } diff --git a/meta.go b/meta.go index af3098a2..02c8e4c7 100644 --- a/meta.go +++ b/meta.go @@ -289,6 +289,16 @@ func (m *Message) TableEchoWithStatus() *Message { } func (m *Message) Sort(key string, arg ...Any) *Message { if m.FieldsIsDetail() { + key := m.value(KEY) + value := m.value(VALUE) + for i := 0; i < len(key)-1; i++ { + for j := i+1; j < len(key); j++ { + if key[i] > key[j] { + key[i], key[j] = key[j], key[i] + value[i], value[j] = value[j], value[i] + } + } + } return m } order := map[string]map[string]int{}