1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +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 ""
}
const (
RANDOM = "random"
)
const PORT = "port"
func init() {

View File

@ -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)
}

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") {
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))
}

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)
}
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(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()

View File

@ -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":

View File

@ -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)))

View File

@ -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
}

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 {
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))
}},