diff --git a/base/cli/system.go b/base/cli/system.go index ced0eaa8..b6709d47 100644 --- a/base/cli/system.go +++ b/base/cli/system.go @@ -142,28 +142,35 @@ const ( CMD_ERR = "cmd_err" CMD_OUT = "cmd_out" - SH = "sh" - LN = "ln" - MV = "mv" - RM = "rm" - GO = "go" - GIT = "git" - WGET = "wget" - CURL = "curl" - TAIL = "tail" - MAN = "man" RUN = "run" - KILL = "kill" - FIND = "find" - GREP = "grep" - SUDO = "sudo" - EXEC = "exec" - EXIT = "exit" - ECHO = "echo" REST = "rest" - RELAY = "relay" - OPENS = "opens" PARAM = "param" + OPENS = "opens" + RELAY = "relay" +) + +const ( + SH = "sh" + LN = "ln" + MV = "mv" + RM = "rm" + + FIND = "find" + GREP = "grep" + TAIL = "tail" + WGET = "wget" + CURL = "curl" + + SUDO = "sudo" + EXEC = "exec" + EXIT = "exit" + ECHO = "echo" + KILL = "kill" + + GO = "go" + GIT = "git" + MAN = "man" + YUM = "yum" ) const SYSTEM = "system" diff --git a/core/code/install.go b/core/code/install.go index 04505ddd..644f5340 100644 --- a/core/code/install.go +++ b/core/code/install.go @@ -133,12 +133,12 @@ func _install_trash(m *ice.Message, arg ...string) { nfs.Trash(m, m.Option(nfs.PATH)) } else { m.Cmd(cli.DAEMON, mdb.REMOVE) - nfs.Trash(m, kit.Path(ice.USR_LOCAL_DAEMON, m.Option(tcp.PORT), m.Option(nfs.PATH))) + nfs.Trash(m, kit.Path(ice.USR_LOCAL_DAEMON, m.Option(tcp.PORT), kit.Select("", m.Option(nfs.PATH), m.Option(cli.PID) == ""))) } } func _install_service(m *ice.Message, arg ...string) { name := kit.Split(path.Base(arg[0]), "_-.")[0] - m.Fields(len(kit.Slice(arg, 1)), "time,status,port,pid,cmd,dir") + m.Fields(len(kit.Slice(arg, 1)), "time,port,pid,status,cmd,dir") m.Cmd(mdb.SELECT, cli.DAEMON, "", mdb.HASH, func(value ice.Maps) { if strings.Contains(value[ice.CMD], path.Join(ice.BIN, name)) { switch m.Push("", value, kit.Split(m.OptionFields())); value[mdb.STATUS] { diff --git a/misc/ssh/relay/relay.go b/misc/ssh/relay/relay.go index da1c3031..09fe9ddf 100644 --- a/misc/ssh/relay/relay.go +++ b/misc/ssh/relay/relay.go @@ -282,27 +282,15 @@ func (s relay) Pushbin(m *ice.Message, arg ...string) { default: bin = kit.Keys(bin, cli.AMD64) } - kit.If(m.Option(web.DREAM), func() { - m.Options(nfs.FROM, path.Join(kit.Select(ice.USR_LOCAL_WORK, "..", ice.Info.NodeType == web.WORKER), m.Option(web.DREAM), ice.USR_PUBLISH+bin)) - m.Options(nfs.PATH, m.Option(web.DREAM), nfs.FILE, ice.BIN_ICE_BIN) - }, func() { - m.Options(nfs.FROM, ice.USR_PUBLISH+bin, nfs.PATH, path.Base(kit.Path("")), nfs.FILE, ice.BIN_ICE_BIN) - }) - m.Cmd(SSH_TRANS, tcp.SEND) - if m.OptionDefault(web.PORTAL, tcp.PORT_9020) == tcp.PORT_443 { - for i := 0; i < 30; i++ { - if m.Exists(ssh.CertPath(m.Message, m.Option(tcp.HOST))) { - break - } - m.Sleep("5s") - } + dream := m.DreamPath(m.Option(web.DREAM)) + m.Options(nfs.FROM, path.Join(dream, ice.USR_PUBLISH+bin), nfs.PATH, path.Base(dream), nfs.FILE, ice.BIN_ICE_BIN) + if m.Cmd(SSH_TRANS, tcp.SEND); m.OptionDefault(web.PORTAL, tcp.PORT_9020) == tcp.PORT_443 { msg := m.Cmd(ssh.CERT, mdb.CREATE, m.Option(tcp.HOST)) - m.Cmd(SSH_TRANS, tcp.SEND, nfs.FROM, msg.Append(ssh.KEY), nfs.PATH, m.Option(web.DREAM), nfs.FILE, nfs.ETC_CERT_KEY) - m.Cmd(SSH_TRANS, tcp.SEND, nfs.FROM, msg.Append(ssh.PEM), nfs.PATH, m.Option(web.DREAM), nfs.FILE, nfs.ETC_CERT_PEM) + m.Cmd(SSH_TRANS, tcp.SEND, nfs.FROM, msg.Append(ssh.PEM), nfs.FILE, nfs.ETC_CERT_PEM) + m.Cmd(SSH_TRANS, tcp.SEND, nfs.FROM, msg.Append(ssh.KEY), nfs.FILE, nfs.ETC_CERT_KEY) } - cmd := "export ctx_dev=" + m.SpideOrigin(ice.DEV) + "; " + m.Template(PUSHBIN_SH) + lex.SP + kit.JoinCmds(ice.DEV, m.Option(ice.DEV), tcp.PORT, m.Option(web.PORTAL), tcp.NODENAME, m.OptionDefault(tcp.NODENAME, m.Option(MACHINE))) - s.shell(m, cmd, arg...) s.Modify(m, kit.Simple(m.OptionSimple(MACHINE, web.DREAM, web.PORTAL))...) + s.shell(m, "export ctx_dev="+m.SpideOrigin(ice.DEV)+"; "+m.Template(PUSHBIN_SH)+lex.SP+kit.JoinCmds(ice.DEV, m.Option(ice.DEV), tcp.PORT, m.Option(web.PORTAL), tcp.NODENAME, m.OptionDefault(tcp.NODENAME, m.Option(MACHINE))), arg...) } func (s relay) AdminCmd(m *ice.Message, arg ...string) {