1
0
mirror of https://shylinux.com/x/icebergs synced 2025-06-26 18:37:29 +08:00

opt autogen

This commit is contained in:
shaoying 2021-02-20 17:49:33 +08:00
parent 486eca1144
commit 6d993365a3
9 changed files with 50 additions and 23 deletions

View File

@ -45,6 +45,9 @@ func _port_right(m *ice.Message, begin string) string {
return "" return ""
} }
const (
RANDOM = "random"
)
const PORT = "port" const PORT = "port"
func init() { func init() {

View File

@ -72,14 +72,15 @@ func _dream_show(m *ice.Message, name string) {
if m.Richs(SPACE, nil, name, nil) == nil { if m.Richs(SPACE, nil, name, nil) == nil {
m.Option(cli.CMD_DIR, p) m.Option(cli.CMD_DIR, p)
// m.Conf(cli.RUNTIME, "conf.ctx_dev"),
m.Optionv(cli.CMD_ENV, kit.Simple( 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"), "PATH", kit.Path(path.Join(p, "bin"))+":"+kit.Path("bin")+":"+os.Getenv("PATH"),
"USER", ice.Info.UserName, m.Confv(DREAM, "meta.env"), "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.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.Event(DREAM_CREATE, kit.MDB_TYPE, m.Option(kit.MDB_TYPE), kit.MDB_NAME, name)
m.Sleep(ice.MOD_TICK) m.Sleep(ice.MOD_TICK)
} }

View File

@ -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") { 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"))) Render(msg, ice.RENDER_DOWNLOAD, kit.Path(m.Conf(SERVE, "meta.intshell.path"), m.Conf(SERVE, "meta.intshell.index")))
} else { } else {
m.Debug("what %v %v", r.URL.Path, ice.BinPack)
if ice.DumpBinPack(w, r.URL.Path, func(name string) { RenderType(w, name, "") }) { if ice.DumpBinPack(w, r.URL.Path, func(name string) { RenderType(w, name, "") }) {
return false 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) { 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)) m.Option(tcp.PORT, m.Cmdx(tcp.PORT, aaa.RIGHT))
} }

View File

@ -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) m.Render(ice.RENDER_DOWNLOAD, p)
} }
func _share_proxy(m *ice.Message, arg ...string) { func _share_proxy(m *ice.Message, arg ...string) {

View File

@ -16,6 +16,7 @@ var Index = &ice.Context{Name: CHAT, Help: "聊天中心",
m.Cmd(web.SERVE, aaa.WHITE, HEADER, RIVER, ACTION, FOOTER) 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, P_SEARCH, m.Prefix(P_SEARCH))
m.Cmd(mdb.SEARCH, mdb.CREATE, EMAIL, m.Prefix(EMAIL)) 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_START, m.Prefix(NODE))
m.Watch(web.SPACE_STOP, m.Prefix(NODE)) m.Watch(web.SPACE_STOP, m.Prefix(NODE))
m.Load() m.Load()

View File

@ -71,8 +71,8 @@ const AUTOGEN = "autogen"
func init() { func init() {
Index.Merge(&ice.Context{ Index.Merge(&ice.Context{
Commands: map[string]*ice.Command{ Commands: map[string]*ice.Command{
AUTOGEN: {Name: "autogen path auto create", Help: "生成", Action: map[string]*ice.Action{ 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) { 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) { if p := path.Join("src", m.Option("name"), m.Option("name")+".shy"); !kit.FileExists(p) {
_autogen_script(m, p) _autogen_script(m, p)
_autogen_source(m, m.Option("name")) _autogen_source(m, m.Option("name"))
@ -85,6 +85,9 @@ func init() {
m.Cmdy(cli.SYSTEM, "make") m.Cmdy(cli.SYSTEM, "make")
m.Option(ice.MSG_PROCESS, ice.PROCESS_INNER) 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) { mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
switch arg[0] { switch arg[0] {
case "main": case "main":

View File

@ -2,7 +2,6 @@ package code
import ( import (
ice "github.com/shylinux/icebergs" ice "github.com/shylinux/icebergs"
"github.com/shylinux/icebergs/base/cli"
"github.com/shylinux/icebergs/base/mdb" "github.com/shylinux/icebergs/base/mdb"
"github.com/shylinux/icebergs/base/nfs" "github.com/shylinux/icebergs/base/nfs"
kit "github.com/shylinux/toolkits" kit "github.com/shylinux/toolkits"
@ -14,6 +13,12 @@ import (
"strings" "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 { func _pack_file(m *ice.Message, file string) string {
list := "" list := ""
if f, e := os.Open(file); e == nil { if f, e := os.Open(file); e == nil {
@ -77,31 +82,31 @@ func init() {
}, },
Commands: map[string]*ice.Command{ Commands: map[string]*ice.Command{
BINPACK: {Name: "binpack path auto create", Help: "打包", Action: map[string]*ice.Action{ 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) { mdb.CREATE: {Name: "create", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
name := kit.Keys(m.Option(kit.MDB_NAME), "go") if pack, p, e := kit.Create("src/binpack.go"); m.Assert(e) {
if pack, p, e := kit.Create(path.Join(m.Conf(PUBLISH, kit.META_PATH), BINPACK, name)); m.Assert(e) {
defer pack.Close() 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_write(pack, `func init() {`)
pack.WriteString(`func init() {` + "\n") _pack_write(pack, ` ice.BinPack = map[string][]byte{`)
pack.WriteString(` ice.BinPack = map[string][]byte{` + "\n")
_pack_volcanos(m, pack, "usr/volcanos") _pack_volcanos(m, pack, "usr/volcanos")
_pack_dir(m, pack, "usr/learning") _pack_dir(m, pack, "usr/learning")
_pack_dir(m, pack, "usr/icebergs") // _pack_dir(m, pack, "usr/icebergs")
_pack_dir(m, pack, "usr/toolkits") // _pack_dir(m, pack, "usr/toolkits")
_pack_dir(m, pack, "usr/intshell") // _pack_dir(m, pack, "usr/intshell")
_pack_contexts(m, pack) // _pack_contexts(m, pack)
pack.WriteString(` }` + "\n") _pack_write(pack, ` }`)
pack.WriteString(`}` + "\n") _pack_write(pack, `}`)
m.Echo(p) 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) { }, 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))) m.Option(nfs.DIR_ROOT, path.Join(m.Conf(PUBLISH, kit.META_PATH)))

View File

@ -56,7 +56,7 @@ func init() {
// 编译参数 // 编译参数
m.Optionv(cli.CMD_ENV, kit.Simple(m.Confv(COMPILE, "meta.env"), "GOARCH", arch, "GOOS", goos)) 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) m.Copy(msg)
return return
} }

View File

@ -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 { func _task_list(m *ice.Message, zone string, id string) *ice.Message {
if zone == "" { if zone == "" {
m.Option(mdb.FIELDS, "time,zone,count") m.Option(mdb.FIELDS, "time,zone,count")
defer func() { m.PushAction(mdb.REMOVE) }()
} else { } else {
m.Option(mdb.FIELDS, kit.Select("begin_time,id,status,level,score,type,name,text", mdb.DETAIL, id != "")) 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) { 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) { 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) 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) { 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.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) 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) { 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)) _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) { mdb.EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
_task_export(m, m.Option(kit.MDB_FILE)) _task_export(m, m.Option(kit.MDB_FILE))
}}, }},