From 2f6795a70ec47a34c864e846af80cd865b89e0e5 Mon Sep 17 00:00:00 2001 From: shy Date: Fri, 13 Oct 2023 10:01:20 +0800 Subject: [PATCH] add some --- base/cli/runtime.go | 8 ++------ base/ssh/script.go | 1 + base/web/serve.go | 4 +--- core/wiki/spark.go | 5 ++++- go.mod | 2 +- go.sum | 4 ++-- misc/alpha/alpha.go | 4 ++-- misc/bash/run.go | 2 +- misc/git/status.go | 2 +- misc/input/input.go | 4 ++-- misc/misc.go | 2 ++ misc/misc.shy | 2 +- misc/tmux/buffer.go | 2 +- misc/tmux/session.go | 14 +++++--------- misc/tmux/tmux.go | 12 ++++++------ 15 files changed, 32 insertions(+), 36 deletions(-) diff --git a/base/cli/runtime.go b/base/cli/runtime.go index e793c9a6..f27762b4 100644 --- a/base/cli/runtime.go +++ b/base/cli/runtime.go @@ -250,12 +250,8 @@ func init() { m.Cmdy("web.code.upgrade") } }}, - RESTART: {Help: "重启", Hand: func(m *ice.Message, arg ...string) { - m.Go(func() { m.Sleep30ms(ice.EXIT, 1) }) - }}, - "reboot": {Help: "清空", Hand: func(m *ice.Message, arg ...string) { - m.Go(func() { m.Sleep30ms(ice.QUIT, 1) }) - }}, + RESTART: {Help: "重启", Hand: func(m *ice.Message, arg ...string) { m.Go(func() { m.Sleep30ms(ice.EXIT, 1) }) }}, + "reboot": {Help: "清空", Hand: func(m *ice.Message, arg ...string) { m.Go(func() { m.Sleep30ms(ice.QUIT, 1) }) }}, "logs": {Help: "日志", Hand: func(m *ice.Message, arg ...string) { OpenCmds(m, kit.Format("cd %s", kit.Path("")), "tail -f var/log/bench.log") }}, diff --git a/base/ssh/script.go b/base/ssh/script.go index 470daf21..bc3209e2 100644 --- a/base/ssh/script.go +++ b/base/ssh/script.go @@ -100,6 +100,7 @@ func (f *Frame) parse(m *ice.Message, h, line string) string { if msg.Cmdy(ls); h == STDIO && msg.IsErrNotFound() { msg.SetResult().Cmdy(cli.SYSTEM, ls) } + kit.If(m.Option(ice.MSG_STATUS) == "", func() { m.StatusTimeCount() }) f.res = Render(msg, msg.Option(ice.MSG_OUTPUT), kit.List(msg.Optionv(ice.MSG_ARGS))...) return "" } diff --git a/base/web/serve.go b/base/web/serve.go index d5cb5abb..70e51f4e 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -130,9 +130,7 @@ func _serve_handle(key string, cmd *ice.Command, m *ice.Message, w http.Response kit.If(strings.TrimPrefix(r.URL.Path, key), func(p string) { m.Optionv(ice.MSG_CMDS, strings.Split(p, nfs.PS)) }) }) m.W.Header().Add(strings.ReplaceAll(ice.LOG_TRACEID, ".", "-"), m.Option(ice.LOG_TRACEID)) - defer func() { - Render(m, m.Option(ice.MSG_OUTPUT), kit.List(m.Optionv(ice.MSG_ARGS))...) - }() + defer func() { Render(m, m.Option(ice.MSG_OUTPUT), kit.List(m.Optionv(ice.MSG_ARGS))...) }() if cmds, ok := _serve_auth(m, key, kit.Simple(m.Optionv(ice.MSG_CMDS)), w, r); ok { defer func() { kit.If(m.Option(ice.MSG_STATUS) == "", func() { m.StatusTimeCount() }) diff --git a/core/wiki/spark.go b/core/wiki/spark.go index d979d05c..1a2012d6 100644 --- a/core/wiki/spark.go +++ b/core/wiki/spark.go @@ -52,6 +52,10 @@ func _spark_tabs(m *ice.Message, arg ...string) { kit.For(arg[1:], func(k, v string) { m.Cmdy("", arg[0], v) }) } func _spark_show(m *ice.Message, name, text string, arg ...string) *ice.Message { + if m.IsCliUA() { + kit.For(kit.SplitLine(text), func(text string) { m.Echo(text).Echo("\n") }) + return m + } return _wiki_template(m.Options(mdb.LIST, kit.SplitLine(text)), name, name, text, arg...) } @@ -68,7 +72,6 @@ func init() { ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { ice.AddRender(ice.RENDER_SCRIPT, func(msg *ice.Message, args ...ice.Any) string { return msg.Cmdx(SPARK, SHELL, args) - return m.Options(ice.MSG_COUNT, "0").Cmdx(SPARK, SHELL, args) }) }}, ice.DEMO: {Hand: func(m *ice.Message, arg ...string) { diff --git a/go.mod b/go.mod index d9fe9b66..6edd73c1 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,6 @@ go 1.13 require ( shylinux.com/x/go-git/v5 v5.6.7 shylinux.com/x/go-qrcode v0.0.3 - shylinux.com/x/toolkits v0.7.11 + shylinux.com/x/toolkits v0.7.12 shylinux.com/x/websocket v0.0.3 ) diff --git a/go.sum b/go.sum index 984bc62a..20669aa5 100644 --- a/go.sum +++ b/go.sum @@ -4,7 +4,7 @@ shylinux.com/x/go-qrcode v0.0.3 h1:RMo+Vidbgq3HatLBj7DDXcTbTLFUwzis5K7TqBkD38U= shylinux.com/x/go-qrcode v0.0.3/go.mod h1:KAbtU+KwiiABMZ/CJ0zh9PI2AX82Uf9rRYcQ4ODm4po= shylinux.com/x/toolkits v0.7.10 h1:65d5rkQXQ71MD8FzYnZ9DFxb1XcOYSYfmRc4j8qQsUw= shylinux.com/x/toolkits v0.7.10/go.mod h1:CHDJarGlDkg60kVsvMLYL/a5hAnRLEOShiEsMOuEp0Q= -shylinux.com/x/toolkits v0.7.11 h1:bndm85Bo5hMUxRIHPuzv5PRFtSl4LMbELHcyT7+b6iA= -shylinux.com/x/toolkits v0.7.11/go.mod h1:CHDJarGlDkg60kVsvMLYL/a5hAnRLEOShiEsMOuEp0Q= +shylinux.com/x/toolkits v0.7.12 h1:WszmGGzarTB4h6l8uZ3Q5Q590mA2EITTqLwD0tigZxk= +shylinux.com/x/toolkits v0.7.12/go.mod h1:CHDJarGlDkg60kVsvMLYL/a5hAnRLEOShiEsMOuEp0Q= shylinux.com/x/websocket v0.0.3 h1:edhLwCp0Mv1ITXqIwbVWdXdX2+vui/jRnS25K89k68I= shylinux.com/x/websocket v0.0.3/go.mod h1:3UGWkjTu3ie5NAZen7J+uLPBrO7DFeKloj6Jxo13Oiw= diff --git a/misc/alpha/alpha.go b/misc/alpha/alpha.go index 99f84648..c47dc967 100644 --- a/misc/alpha/alpha.go +++ b/misc/alpha/alpha.go @@ -34,7 +34,7 @@ type alpha struct { func (s alpha) Load(m *ice.Message, arg ...string) { if !nfs.Exists(m, path.Dir(m.Option(nfs.FILE))) { - git.ReposClone(m.Message, mdb.Config(m, "repos")) + git.ReposClone(m.Message, mdb.Config(m, nfs.REPOS)) } lib := kit.Select(path.Base(m.Option(nfs.FILE)), m.Option(mdb.ZONE)) m.Assert(nfs.RemoveAll(m, path.Join(mdb.Config(m, mdb.STORE), lib))) @@ -61,7 +61,7 @@ func (s alpha) List(m *ice.Message, arg ...string) { m.OptionFields(ice.FIELDS_DETAIL) arg[1] = "^" + arg[1] + mdb.FS } - wiki.CSV(m.Message.Spawn(), m.Cmdx(cli.SYSTEM, "grep", "-rih", arg[1], mdb.Config(m, mdb.STORE)), kit.Split(mdb.Config(m, mdb.FIELD))...).Table(func(value ice.Maps) { + wiki.CSV(m.Message.Spawn(), m.Cmdx(cli.SYSTEM, nfs.GREP, "-rih", arg[1], mdb.Config(m, mdb.STORE)), kit.Split(mdb.Config(m, mdb.FIELD))...).Table(func(value ice.Maps) { kit.If(m.FieldsIsDetail(), func() { m.PushDetail(value, mdb.Config(m, mdb.FIELD)) }, func() { m.PushRecord(value, mdb.Config(m, mdb.FIELD)) }) }) } diff --git a/misc/bash/run.go b/misc/bash/run.go index b849803c..ba3aa2f2 100644 --- a/misc/bash/run.go +++ b/misc/bash/run.go @@ -94,7 +94,7 @@ func init() { func Complete(m *ice.Message, detail bool, arg ...string) (res []string) { echo := func(arg ...string) { res = append(res, arg...) } if len(arg) < 2 || arg[1] != ctx.ACTION { - list := ctx.CmdList(m.Spawn()).Appendv(ctx.INDEX) + list := m.Cmd(ctx.COMMAND).Appendv(ctx.INDEX) if len(arg) > 0 { pre := arg[0][0 : strings.LastIndex(arg[0], nfs.PT)+1] list = kit.Simple(list, func(cmd string) bool { return strings.HasPrefix(cmd, arg[0]) }, func(cmd string) string { return strings.TrimPrefix(cmd, pre) }) diff --git a/misc/git/status.go b/misc/git/status.go index a87c1d19..d15b0a12 100644 --- a/misc/git/status.go +++ b/misc/git/status.go @@ -88,7 +88,7 @@ func init() { } else if len(arg) == 0 { kit.If(config != nil, func() { m.Option(aaa.EMAIL, kit.Select(mdb.Config(m, aaa.EMAIL), config.User.Email)) }) m.Cmdy(REPOS, STATUS).Action(PULL, PUSH, INSTEADOF, OAUTH, CONFIGS, GITEA) - m.Cmdy(code.PUBLISH, ice.CONTEXTS, ice.DEV) + kit.If(!m.IsCliUA(), func() { m.Cmdy(code.PUBLISH, ice.CONTEXTS, ice.DEV) }) } else { _repos_cmd(m, arg[0], DIFF) } diff --git a/misc/input/input.go b/misc/input/input.go index ef72956c..b70cc835 100644 --- a/misc/input/input.go +++ b/misc/input/input.go @@ -42,7 +42,7 @@ func (s input) Inputs(m *ice.Message, arg ...string) { } } func (s input) Load(m *ice.Message, arg ...string) { - if f, e := nfs.OpenFile(m, m.Option(nfs.FILE)); !m.Warn(e) { + if f, e := nfs.OpenFile(m.Message, m.Option(nfs.FILE)); !m.Warn(e) { defer f.Close() lib := kit.Select(path.Base(m.Option(nfs.FILE)), m.Option(mdb.ZONE)) m.Assert(nfs.RemoveAll(m, path.Join(mdb.Config(m, mdb.STORE), lib))) @@ -92,7 +92,7 @@ func (s input) List(m *ice.Message, arg ...string) { case WORD: arg[1] = "^" + arg[1] + mdb.FS } - res := m.Cmdx(cli.SYSTEM, "grep", "-rn", arg[1], mdb.Config(m, mdb.STORE)) + res := m.Cmdx(cli.SYSTEM, nfs.GREP, "-rn", arg[1], mdb.Config(m, mdb.STORE)) bio := csv.NewReader(bytes.NewBufferString(strings.Replace(res, nfs.DF, mdb.FS, -1))) for i := 0; i < kit.Int(10); i++ { if line, e := bio.Read(); e != nil { diff --git a/misc/misc.go b/misc/misc.go index b45cfae2..269c0a17 100644 --- a/misc/misc.go +++ b/misc/misc.go @@ -1,6 +1,8 @@ package misc import ( + _ "shylinux.com/x/icebergs/misc/bash" _ "shylinux.com/x/icebergs/misc/git" _ "shylinux.com/x/icebergs/misc/tmux" + _ "shylinux.com/x/icebergs/misc/vim" ) diff --git a/misc/misc.shy b/misc/misc.shy index 3206ff3d..410ea80e 100644 --- a/misc/misc.shy +++ b/misc/misc.shy @@ -4,9 +4,9 @@ websocket webview qrcode xterm -ssh git +ssh vim bash tmux diff --git a/misc/tmux/buffer.go b/misc/tmux/buffer.go index 150ccf88..0dd0fcc5 100644 --- a/misc/tmux/buffer.go +++ b/misc/tmux/buffer.go @@ -60,7 +60,7 @@ func init() { } func PushText(m *ice.Message, text string) { m.OptionFields(ice.MSG_DETAIL) - if m.PushScript(nfs.SCRIPT, text); strings.HasPrefix(text, ice.HTTP) { + if m.PushScript(text); strings.HasPrefix(text, ice.HTTP) { m.PushQRCode(cli.QRCODE, text) m.PushAnchor(text) } diff --git a/misc/tmux/session.go b/misc/tmux/session.go index 7c8e1f11..9e413591 100644 --- a/misc/tmux/session.go +++ b/misc/tmux/session.go @@ -26,8 +26,6 @@ func _tmux_key(arg ...string) string { return "miss" } } -func _tmux_cmd(m *ice.Message, arg ...string) *ice.Message { return m.Cmd(cli.SYSTEM, TMUX, arg) } -func _tmux_cmds(m *ice.Message, arg ...string) string { return _tmux_cmd(m, arg...).Results() } const ( FORMAT = "format" @@ -81,13 +79,6 @@ func init() { )}, }, Commands: ice.Commands{ SESSION: {Name: "session session window pane cmds auto", Help: "会话", Actions: ice.Actions{ - web.DREAM_CREATE: {Hand: func(m *ice.Message, arg ...string) { - m.Go(func() { - nfs.Exists(m.Sleep3s(), path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME)), func(p string) { - m.Cmd("", mdb.CREATE) - }) - }) - }}, mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { if m.Option(ctx.ACTION) == SCRIPT { m.Cmdy(SCRIPT, mdb.INPUTS, arg) @@ -167,6 +158,11 @@ func init() { }) }).Sleep30ms() }}, + web.DREAM_CREATE: {Hand: func(m *ice.Message, arg ...string) { + m.Go(func() { + nfs.Exists(m.Sleep3s(), path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME)), func(p string) { m.Cmd("", mdb.CREATE) }) + }) + }}, }, Hand: func(m *ice.Message, arg ...string) { if m.Action(SCRIPT); len(arg) > 3 { m.Cmd(CMD, _tmux_key(arg[0], arg[1], arg[2]), arg[3:]) diff --git a/misc/tmux/tmux.go b/misc/tmux/tmux.go index b9c81823..36fb9c17 100644 --- a/misc/tmux/tmux.go +++ b/misc/tmux/tmux.go @@ -3,7 +3,6 @@ package tmux import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/cli" - "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/nfs" "shylinux.com/x/icebergs/base/web" @@ -11,19 +10,20 @@ import ( kit "shylinux.com/x/toolkits" ) +func _tmux_cmd(m *ice.Message, arg ...string) *ice.Message { return m.Cmd(cli.SYSTEM, TMUX, arg) } +func _tmux_cmds(m *ice.Message, arg ...string) string { return _tmux_cmd(m, arg...).Results() } + const TMUX = "tmux" var Index = &ice.Context{Name: TMUX, Help: "工作台", Commands: ice.Commands{ - TMUX: {Name: "tmux path auto start order build download", Help: "服务", Actions: ice.MergeActions(ice.Actions{ - cli.START: {Help: "启动", Hand: func(m *ice.Message, arg ...string) { + TMUX: {Help: "服务", Actions: ice.MergeActions(ice.Actions{ + cli.START: {Hand: func(m *ice.Message, arg ...string) { m.Optionv(code.PREPARE, func(p string) []string { return []string{"-S", kit.Path(m.Option(cli.CMD_DIR, p), "tmux.socket"), NEW_SESSION, "-d", "-n", "miss"} }) m.Cmdy(code.INSTALL, cli.START, mdb.Config(m, nfs.SOURCE), "bin/tmux") }}, - }, code.InstallAction(nfs.SOURCE, "http://mirrors.tencent.com/macports/distfiles/tmux/tmux-3.2.tar.gz")), Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(code.INSTALL, ctx.ConfigSimple(m, nfs.SOURCE), arg) - }}, + }, code.InstallAction(nfs.SOURCE, "http://mirrors.tencent.com/macports/distfiles/tmux/tmux-3.2.tar.gz"))}, }} func init() { code.Index.Register(Index, &web.Frame{}) }