From 6cf4b75d5f948d7a7b7eddaca64f7c62d10bcb18 Mon Sep 17 00:00:00 2001 From: shaoying Date: Sat, 18 Feb 2023 09:07:22 +0800 Subject: [PATCH] opt some --- base/nfs/save.go | 1 + base/web/spide.go | 2 +- core/code/autogen.go | 20 +++++++++++++++++++- core/code/publish.go | 19 ++++++++++++++----- 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/base/nfs/save.go b/base/nfs/save.go index b7191ad5..1740c546 100644 --- a/base/nfs/save.go +++ b/base/nfs/save.go @@ -76,6 +76,7 @@ func _link_file(m *ice.Message, name string, from string) { const ( CONTENT = "content" + ALIAS = "alias" ) const LOAD = "load" const DEFS = "defs" diff --git a/base/web/spide.go b/base/web/spide.go index c2120f20..8021d3a7 100644 --- a/base/web/spide.go +++ b/base/web/spide.go @@ -290,7 +290,7 @@ func init() { MERGE: {Hand: func(m *ice.Message, arg ...string) { m.Echo(kit.MergeURL2(m.CmdAppend("", arg[0], CLIENT_URL), arg[1], arg[2:])) }}, - }, mdb.HashAction(mdb.SHORT, CLIENT_NAME, mdb.FIELD, "time,client.name,client.url,client.origin", LOGHEADERS, ice.FALSE), mdb.ClearHashOnExitAction()), Hand: func(m *ice.Message, arg ...string) { + }, mdb.HashAction(mdb.SHORT, CLIENT_NAME, mdb.FIELD, "time,client.name,client.url", LOGHEADERS, ice.FALSE), mdb.ClearHashOnExitAction()), Hand: func(m *ice.Message, arg ...string) { if len(arg) < 2 || arg[0] == "" || (len(arg) > 3 && arg[3] == "") { mdb.HashSelect(m, kit.Slice(arg, 0, 1)...).Sort(CLIENT_NAME) } else { diff --git a/core/code/autogen.go b/core/code/autogen.go index aeaddea9..3a3efc57 100644 --- a/core/code/autogen.go +++ b/core/code/autogen.go @@ -7,6 +7,7 @@ import ( ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/aaa" "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/ssh" @@ -105,6 +106,23 @@ func init() { Index.MergeCommands(ice.Commands{ AUTOGEN: {Name: "autogen path auto module binpack script relay", Help: "生成", Actions: ice.Actions{ mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { + if m.Option(ctx.ACTION) == RELAY { + switch arg[0] { + case nfs.ALIAS: + m.Cmdy(web.SPIDE).CutTo("client.name", arg[0]) + case aaa.USERNAME: + m.Cmdy(aaa.USER).Cut(aaa.USERNAME) + m.Push(arg[0], "shy") + case tcp.HOST: + m.Option(ice.MSG_FIELDS, "client.hostname") + m.Cmdy(web.SPIDE) + case tcp.PORT: + m.Push(arg[0], "22") + case ice.INIT: + m.Push(arg[0], "tmux attach -t miss") + } + return + } switch arg[0] { case cli.MAIN: m.Cmdy(nfs.DIR, nfs.PWD, nfs.DIR_CLI_FIELDS, kit.Dict(nfs.DIR_ROOT, m.Option(nfs.PATH), nfs.DIR_REG, `.*\.go$`)).RenameAppend(nfs.PATH, arg[0]) @@ -147,7 +165,7 @@ func init() { _autogen_version(m) m.Cmdy(nfs.CAT, ice.SRC_VERSION_GO) }}, - RELAY: {Name: "relay alias username host port init", Help: "跳板", Hand: func(m *ice.Message, arg ...string) { + RELAY: {Name: "relay alias username host port=22 init", Help: "跳板", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(COMPILE, RELAY) m.Cmdy(nfs.LINK, ice.USR_PUBLISH+m.Option(mdb.ALIAS), ice.USR_PUBLISH+RELAY) m.Cmd(nfs.SAVE, path.Join(kit.Env(cli.HOME), ".ssh/"+m.Option(mdb.ALIAS)+".json"), diff --git a/core/code/publish.go b/core/code/publish.go index c83d4d61..c4b6f2c7 100644 --- a/core/code/publish.go +++ b/core/code/publish.go @@ -67,9 +67,9 @@ func _publish_contexts(m *ice.Message, arg ...string) { case ice.MISC: _publish_file(m, ice.ICE_BIN) case ice.CORE: - m.Option(web.DOMAIN, m.Cmdx(web.SPIDE, ice.SHY, "client.origin")) + m.Option(web.DOMAIN, m.Cmd(web.SPIDE, ice.SHY).Append("client.origin")) case ice.BASE: - m.Option(web.DOMAIN, m.Cmdx(web.SPIDE, ice.SHY, "client.origin")) + m.Option(web.DOMAIN, m.Cmd(web.SPIDE, ice.SHY).Append("client.origin")) m.Option(nfs.REMOTE, kit.Select(ice.Info.Make.Remote, cli.SystemExec(m, "git", "config", "remote.origin.url"))) } if buf, err := kit.Render(m.Config(kit.Keys(ice.CONTEXTS, k)), m); m.Assert(err) { @@ -85,8 +85,15 @@ const PUBLISH = "publish" func init() { Index.MergeCommands(ice.Commands{ - PUBLISH: {Name: "publish path auto create volcanos icebergs intshell", Help: "发布", Actions: ice.MergeActions(ice.Actions{ + PUBLISH: {Name: "publish path auto create volcanos icebergs intshell relay", Help: "发布", Actions: ice.MergeActions(ice.Actions{ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { m.Config(ice.CONTEXTS, _contexts) }}, + mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { + if m.Option(ctx.ACTION) == RELAY { + m.Cmdy(AUTOGEN, mdb.INPUTS, arg) + return + } + m.Cmdy(nfs.DIR, arg[1:]).Cut("path,size,time").ProcessAgain() + }}, web.SERVE_START: {Hand: func(m *ice.Message, arg ...string) { if runtime.GOOS == cli.WINDOWS { return @@ -107,9 +114,11 @@ func init() { _publish_list(m, kit.ExtReg(`(sh|vim|conf)`)) }}, ice.CONTEXTS: {Hand: func(m *ice.Message, arg ...string) { _publish_contexts(m, arg...) }}, - mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(nfs.DIR, arg[1:]).Cut("path,size,time").ProcessAgain() }}, mdb.CREATE: {Name: "create file", Help: "添加", Hand: func(m *ice.Message, arg ...string) { _publish_file(m, m.Option(nfs.FILE)) }}, - nfs.TRASH: {Hand: func(m *ice.Message, arg ...string) { nfs.Trash(m, path.Join(ice.USR_PUBLISH, m.Option(nfs.PATH))) }}, + RELAY: {Name: "relay alias username host port=22 init", Help: "跳板", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(AUTOGEN, RELAY, arg) + }}, + nfs.TRASH: {Hand: func(m *ice.Message, arg ...string) { nfs.Trash(m, path.Join(ice.USR_PUBLISH, m.Option(nfs.PATH))) }}, }, ctx.ConfAction(ice.CONTEXTS, _contexts), aaa.RoleAction()), Hand: func(m *ice.Message, arg ...string) { m.Cmdy(nfs.DIR, kit.Select("", arg, 0), nfs.DIR_WEB_FIELDS, kit.Dict(nfs.DIR_ROOT, ice.USR_PUBLISH)).SortTimeR(mdb.TIME) }},