From 6d993365a3d118519e51bd78ac6b2ad282b5cee3 Mon Sep 17 00:00:00 2001 From: shaoying Date: Sat, 20 Feb 2021 17:49:33 +0800 Subject: [PATCH] opt autogen --- base/tcp/port.go | 3 +++ base/web/dream.go | 5 +++-- base/web/serve.go | 3 ++- base/web/share.go | 6 ++++++ core/chat/chat.go | 1 + core/code/autogen.go | 7 +++++-- core/code/binpack.go | 39 ++++++++++++++++++++++----------------- core/code/compile.go | 2 +- core/team/task.go | 7 +++++++ 9 files changed, 50 insertions(+), 23 deletions(-) diff --git a/base/tcp/port.go b/base/tcp/port.go index 5f51b0a1..16290a53 100644 --- a/base/tcp/port.go +++ b/base/tcp/port.go @@ -45,6 +45,9 @@ func _port_right(m *ice.Message, begin string) string { return "" } +const ( + RANDOM = "random" +) const PORT = "port" func init() { diff --git a/base/web/dream.go b/base/web/dream.go index 22e16d8e..2c569186 100644 --- a/base/web/dream.go +++ b/base/web/dream.go @@ -72,14 +72,15 @@ func _dream_show(m *ice.Message, name string) { if m.Richs(SPACE, nil, name, nil) == nil { m.Option(cli.CMD_DIR, p) + // m.Conf(cli.RUNTIME, "conf.ctx_dev"), m.Optionv(cli.CMD_ENV, kit.Simple( - "ctx_dev", m.Conf(cli.RUNTIME, "conf.ctx_dev"), + "ctx_dev", strings.Split(m.Option(ice.MSG_USERWEB), "?")[0], "PATH", kit.Path(path.Join(p, "bin"))+":"+kit.Path("bin")+":"+os.Getenv("PATH"), "USER", ice.Info.UserName, m.Confv(DREAM, "meta.env"), )) // 启动任务 m.Optionv(cli.CMD_STDERR, path.Join(p, m.Conf(DREAM, "meta.env.ctx_log"))) - m.Cmd(cli.DAEMON, m.Confv(DREAM, "meta.cmd"), SPIDE_DEV, SPIDE_SELF, kit.MDB_NAME, name) + m.Cmd(cli.DAEMON, m.Confv(DREAM, "meta.cmd"), SPIDE_DEV, SPIDE_DEV, kit.MDB_NAME, name) m.Event(DREAM_CREATE, kit.MDB_TYPE, m.Option(kit.MDB_TYPE), kit.MDB_NAME, name) m.Sleep(ice.MOD_TICK) } diff --git a/base/web/serve.go b/base/web/serve.go index 8f0549f3..45e126a7 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -61,6 +61,7 @@ func _serve_main(m *ice.Message, w http.ResponseWriter, r *http.Request) bool { if msg.W, msg.R = w, r; strings.Contains(r.Header.Get("User-Agent"), "curl") { Render(msg, ice.RENDER_DOWNLOAD, kit.Path(m.Conf(SERVE, "meta.intshell.path"), m.Conf(SERVE, "meta.intshell.index"))) } else { + m.Debug("what %v %v", r.URL.Path, ice.BinPack) if ice.DumpBinPack(w, r.URL.Path, func(name string) { RenderType(w, name, "") }) { return false } @@ -228,7 +229,7 @@ func init() { } }}, tcp.START: {Name: "start dev= name=self proto=http host= port=9020", Help: "启动", Hand: func(m *ice.Message, arg ...string) { - if cli.NodeInfo(m, SERVER, ice.Info.HostName); m.Option(tcp.PORT) == "random" { + if cli.NodeInfo(m, SERVER, ice.Info.HostName); m.Option(tcp.PORT) == tcp.RANDOM { m.Option(tcp.PORT, m.Cmdx(tcp.PORT, aaa.RIGHT)) } diff --git a/base/web/share.go b/base/web/share.go index 0610b30e..20889b5d 100644 --- a/base/web/share.go +++ b/base/web/share.go @@ -47,6 +47,12 @@ func _share_local(m *ice.Message, arg ...string) { } } + if p == "usr/publish/order.js" { + if _, e := os.Stat(p); os.IsNotExist(e) { + m.Render(ice.RENDER_RESULT, "") + return + } + } m.Render(ice.RENDER_DOWNLOAD, p) } func _share_proxy(m *ice.Message, arg ...string) { diff --git a/core/chat/chat.go b/core/chat/chat.go index 07c2ae98..51dc1beb 100644 --- a/core/chat/chat.go +++ b/core/chat/chat.go @@ -16,6 +16,7 @@ var Index = &ice.Context{Name: CHAT, Help: "聊天中心", m.Cmd(web.SERVE, aaa.WHITE, HEADER, RIVER, ACTION, FOOTER) m.Cmd(mdb.SEARCH, mdb.CREATE, P_SEARCH, m.Prefix(P_SEARCH)) m.Cmd(mdb.SEARCH, mdb.CREATE, EMAIL, m.Prefix(EMAIL)) + m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, "usr/publish") m.Watch(web.SPACE_START, m.Prefix(NODE)) m.Watch(web.SPACE_STOP, m.Prefix(NODE)) m.Load() diff --git a/core/code/autogen.go b/core/code/autogen.go index e8c49921..55bd2351 100644 --- a/core/code/autogen.go +++ b/core/code/autogen.go @@ -71,8 +71,8 @@ const AUTOGEN = "autogen" func init() { Index.Merge(&ice.Context{ Commands: map[string]*ice.Command{ - AUTOGEN: {Name: "autogen path auto create", Help: "生成", Action: map[string]*ice.Action{ - mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "创建", Hand: func(m *ice.Message, arg ...string) { + AUTOGEN: {Name: "autogen path auto create binpack", Help: "生成", Action: map[string]*ice.Action{ + mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "模块", Hand: func(m *ice.Message, arg ...string) { if p := path.Join("src", m.Option("name"), m.Option("name")+".shy"); !kit.FileExists(p) { _autogen_script(m, p) _autogen_source(m, m.Option("name")) @@ -85,6 +85,9 @@ func init() { m.Cmdy(cli.SYSTEM, "make") m.Option(ice.MSG_PROCESS, ice.PROCESS_INNER) }}, + BINPACK: {Name: "binpack", Help: "打包", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(BINPACK, mdb.CREATE) + }}, mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { switch arg[0] { case "main": diff --git a/core/code/binpack.go b/core/code/binpack.go index a40e933d..95c2332b 100644 --- a/core/code/binpack.go +++ b/core/code/binpack.go @@ -2,7 +2,6 @@ package code import ( ice "github.com/shylinux/icebergs" - "github.com/shylinux/icebergs/base/cli" "github.com/shylinux/icebergs/base/mdb" "github.com/shylinux/icebergs/base/nfs" kit "github.com/shylinux/toolkits" @@ -14,6 +13,12 @@ import ( "strings" ) +func _pack_write(o *os.File, arg ...string) { + for _, v := range arg { + o.WriteString(v) + } + o.WriteString("\n") +} func _pack_file(m *ice.Message, file string) string { list := "" if f, e := os.Open(file); e == nil { @@ -77,31 +82,31 @@ func init() { }, Commands: map[string]*ice.Command{ BINPACK: {Name: "binpack path auto create", Help: "打包", Action: map[string]*ice.Action{ - mdb.CREATE: {Name: "create name=demo from=src/main.go", Help: "创建", Hand: func(m *ice.Message, arg ...string) { - name := kit.Keys(m.Option(kit.MDB_NAME), "go") - if pack, p, e := kit.Create(path.Join(m.Conf(PUBLISH, kit.META_PATH), BINPACK, name)); m.Assert(e) { + mdb.CREATE: {Name: "create", Help: "创建", Hand: func(m *ice.Message, arg ...string) { + if pack, p, e := kit.Create("src/binpack.go"); m.Assert(e) { defer pack.Close() - pack.WriteString(m.Cmdx(nfs.CAT, m.Option("from"))) + _pack_write(pack, `package main`) + _pack_write(pack, "") + _pack_write(pack, `import (`) + _pack_write(pack, ` ice "github.com/shylinux/icebergs"`) + _pack_write(pack, `)`) + _pack_write(pack, "") - pack.WriteString("\n") - pack.WriteString(`func init() {` + "\n") - pack.WriteString(` ice.BinPack = map[string][]byte{` + "\n") + _pack_write(pack, `func init() {`) + _pack_write(pack, ` ice.BinPack = map[string][]byte{`) _pack_volcanos(m, pack, "usr/volcanos") _pack_dir(m, pack, "usr/learning") - _pack_dir(m, pack, "usr/icebergs") - _pack_dir(m, pack, "usr/toolkits") - _pack_dir(m, pack, "usr/intshell") - _pack_contexts(m, pack) + // _pack_dir(m, pack, "usr/icebergs") + // _pack_dir(m, pack, "usr/toolkits") + // _pack_dir(m, pack, "usr/intshell") + // _pack_contexts(m, pack) - pack.WriteString(` }` + "\n") - pack.WriteString(`}` + "\n") + _pack_write(pack, ` }`) + _pack_write(pack, `}`) m.Echo(p) } - - m.Option(cli.CMD_DIR, path.Join(m.Conf(PUBLISH, kit.META_PATH), BINPACK)) - m.Cmd(COMPILE, name) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Option(nfs.DIR_ROOT, path.Join(m.Conf(PUBLISH, kit.META_PATH))) diff --git a/core/code/compile.go b/core/code/compile.go index dfa00ebd..e77f5937 100644 --- a/core/code/compile.go +++ b/core/code/compile.go @@ -56,7 +56,7 @@ func init() { // 编译参数 m.Optionv(cli.CMD_ENV, kit.Simple(m.Confv(COMPILE, "meta.env"), "GOARCH", arch, "GOOS", goos)) - if msg := m.Cmd(cli.SYSTEM, m.Confv(COMPILE, "meta.go"), "-o", file, main, "src/version.go"); msg.Append(cli.CMD_CODE) != "0" { + if msg := m.Cmd(cli.SYSTEM, m.Confv(COMPILE, "meta.go"), "-o", file, main, "src/version.go", "src/binpack.go"); msg.Append(cli.CMD_CODE) != "0" { m.Copy(msg) return } diff --git a/core/team/task.go b/core/team/task.go index dc914de7..10af942f 100644 --- a/core/team/task.go +++ b/core/team/task.go @@ -61,6 +61,7 @@ func _task_action(m *ice.Message, status interface{}, action ...string) string { func _task_list(m *ice.Message, zone string, id string) *ice.Message { if zone == "" { m.Option(mdb.FIELDS, "time,zone,count") + defer func() { m.PushAction(mdb.REMOVE) }() } else { m.Option(mdb.FIELDS, kit.Select("begin_time,id,status,level,score,type,name,text", mdb.DETAIL, id != "")) defer m.Table(func(index int, value map[string]string, head []string) { @@ -93,6 +94,9 @@ func _task_modify(m *ice.Message, zone, id, field, value string, arg ...string) func _task_delete(m *ice.Message, zone, id string) { m.Cmdy(mdb.MODIFY, TASK, _sub_key(m, zone), mdb.LIST, kit.MDB_ID, id, TaskField.STATUS, TaskStatus.CANCEL) } +func _task_remove(m *ice.Message, zone string) { + m.Cmdy(mdb.DELETE, TASK, "", mdb.HASH, kit.MDB_ZONE, zone) +} func _task_export(m *ice.Message, file string) { m.Option(mdb.FIELDS, "zone,id,time,type,name,text,level,status,score,begin_time,close_time,extra") m.Cmdy(mdb.EXPORT, TASK, "", mdb.ZONE, file) @@ -194,6 +198,9 @@ func init() { mdb.DELETE: {Name: "delete", Help: "删除", Hand: func(m *ice.Message, arg ...string) { _task_delete(m, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID)) }}, + mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) { + _task_remove(m, m.Option(kit.MDB_ZONE)) + }}, mdb.EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) { _task_export(m, m.Option(kit.MDB_FILE)) }},