1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-27 01:48:27 +08:00
icebergs/core/code/template.go
2022-02-13 17:01:47 +08:00

77 lines
2.4 KiB
Go

package code
import (
"path"
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/mdb"
"shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
)
func init() {
const TEMPLATE = "template"
Index.Merge(&ice.Context{Commands: map[string]*ice.Command{
TEMPLATE: {Name: "template name auto create", Help: "模板", Action: ice.MergeAction(map[string]*ice.Action{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
m.Cmd(TEMPLATE, mdb.CREATE, kit.SimpleKV("", "txt", "网站索引", `
hi
hi
cli.qrcode
cli.system
cli.runtime
`))
m.Cmd(TEMPLATE, mdb.CREATE, kit.SimpleKV("", "js", "前端模块", `Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, cb, target) {
can.onmotion.clear(can)
can.onappend.table(can, msg)
can.onappend.board(can, msg)
}})`))
m.Cmd(TEMPLATE, mdb.CREATE, kit.SimpleKV("", "go", "后端模块", `package {{.Option "zone"}}
import (
"shylinux.com/x/ice"
)
type {{.Option "name"}} struct {
ice.{{.Option "type"}}
list string {{.Option "tags"}}
}
func (h {{.Option "name"}}) List(m *ice.Message, arg ...string) {
h.{{.Option "type"}}.List(m, arg...)
}
func init() { ice.Cmd("{{.Option "key"}}", {{.Option "name"}}{}) }
`), "args", `[
{"name": "zone", "value": "hi"},
{"name": "name", "value": "hi"},
{"name": "key", "value": "web.code.hi.hi"},
{"name": "type", "values": "Hash,Zone,List"},
{"name": "tags", "value": "name:\"list hash id auto insert\" help:\"数据\""},
{"name": "main", "value": "main.go"}
]`)
}},
mdb.CREATE: {Name: "create type name text args", Help: "创建"},
nfs.DEFS: {Name: "defs file=hi/hi.go", Help: "生成", Hand: func(m *ice.Message, arg ...string) {
m.Option("tags", "`"+m.Option("tags")+"`")
if buf, err := kit.Render(m.Option(mdb.TEXT), m); !m.Warn(err) {
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)), string(buf))
switch kit.Ext(m.Option(nfs.FILE)) {
case GO:
if m.Option(MAIN) != "" && m.Option(mdb.ZONE) != "" {
_autogen_import(m, path.Join(m.Option(nfs.PATH), m.Option(MAIN)), m.Option(mdb.ZONE), _autogen_mod(m, ice.GO_MOD))
}
}
}
}},
}, mdb.HashAction(mdb.SHORT, "name", mdb.FIELD, "time,type,name,text,args")), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
mdb.HashSelect(m, arg...)
m.PushAction(nfs.DEFS, mdb.REMOVE)
m.Sort("name")
m.Cut("time,action,type,name,text,args")
}}},
})
}