diff --git a/base/web/route.go b/base/web/route.go index 8adde73b..506a8b3d 100644 --- a/base/web/route.go +++ b/base/web/route.go @@ -109,12 +109,14 @@ func init() { if _route_travel(m, kit.Select("", arg, 0)); m.W == nil { return } + m.Push("type", MYSELF) + m.Push("route", MYSELF) m.Table(func(index int, value map[string]string, field []string) { m.PushRender(kit.MDB_LINK, "a", value[kit.MDB_ROUTE], kit.MergeURL(m.Option(ice.MSG_USERWEB), "pod", kit.Keys(m.Option("pod", value[kit.MDB_ROUTE])))) switch value[kit.MDB_TYPE] { - case SERVER: + case MYSELF, SERVER: m.PushRender("action", "button", "创建", "启动") case WORKER: m.PushRender("action", "button", "创建", "结束") diff --git a/base/web/space.go b/base/web/space.go index 71a90daf..3dbfeeda 100644 --- a/base/web/space.go +++ b/base/web/space.go @@ -199,9 +199,11 @@ func _space_search(m *ice.Message, kind, name, text string, arg ...string) { const ( MASTER = "master" + MYSELF = "myself" + BETTER = "better" + CHROME = "chrome" SERVER = "server" WORKER = "worker" - BETTER = "better" ) const SPACE = "space" @@ -228,7 +230,7 @@ func init() { return } - if arg[0] == "" { + if arg[0] == "" || arg[0] == MYSELF { // 本地命令 m.Cmdy(arg[1:]) return diff --git a/core/code/autogen.go b/core/code/autogen.go index 1fb5d70d..0e1ff236 100644 --- a/core/code/autogen.go +++ b/core/code/autogen.go @@ -29,6 +29,7 @@ func init() { p := path.Join("src", m.Option("name"), m.Option("name")+".go") if kit.FileExists(p) { + m.Echo(p) return } @@ -54,7 +55,7 @@ func init() { list = append(list, line) }) m.Cmd(nfs.CAT, m.Option("from")) - m.Cmd(nfs.SAVE, p, strings.Join(list, "\n")) + m.Cmdy(nfs.SAVE, p, strings.Join(list, "\n")) // go.mod mod := "" @@ -77,7 +78,7 @@ func init() { m.Cmd(nfs.CAT, "src/main.go") m.Cmd(nfs.SAVE, "src/main.go", strings.Join(list, "\n")) - m.Cmdy(mdb.INSERT, m.Prefix(AUTOGEN), "", mdb.LIST, arg) + m.Cmd(mdb.INSERT, m.Prefix(AUTOGEN), "", mdb.LIST, arg) }}, mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { switch arg[0] { diff --git a/core/code/favor.go b/core/code/favor.go new file mode 100644 index 00000000..0e9cc360 --- /dev/null +++ b/core/code/favor.go @@ -0,0 +1,77 @@ +package code + +import ( + ice "github.com/shylinux/icebergs" + "github.com/shylinux/icebergs/base/ctx" + "github.com/shylinux/icebergs/base/mdb" + kit "github.com/shylinux/toolkits" +) + +const FAVOR = "favor" + +func init() { + Index.Merge(&ice.Context{ + Configs: map[string]*ice.Config{ + FAVOR: {Name: FAVOR, Help: "收藏夹", Value: kit.Data( + kit.MDB_SHORT, "topic", kit.MDB_FIELD, "time,id,type,name,text,file,line", + )}, + }, + Commands: map[string]*ice.Command{ + FAVOR: {Name: "favor topic=auto id=auto auto 创建 导出 导入", Help: "收藏夹", Action: map[string]*ice.Action{ + mdb.CREATE: {Name: "create topic", Help: "创建", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(mdb.INSERT, m.Prefix(FAVOR), "", mdb.HASH, arg) + }}, + mdb.INSERT: {Name: "insert topic=数据结构 name=hi text=hello", Help: "添加", Hand: func(m *ice.Message, arg ...string) { + m.Richs(m.Prefix(FAVOR), "", m.Option("topic"), func(key string, value map[string]interface{}) { + m.Cmdy(mdb.INSERT, m.Prefix(FAVOR), kit.Keys(kit.MDB_HASH, key), mdb.LIST, arg) + }) + }}, + mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) { + m.Richs(m.Prefix(FAVOR), "", m.Option("topic"), func(key string, value map[string]interface{}) { + m.Cmdy(mdb.MODIFY, m.Prefix(FAVOR), kit.Keys(kit.MDB_HASH, key), mdb.LIST, kit.MDB_ID, m.Option(kit.MDB_ID), arg) + }) + }}, + mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(mdb.DELETE, m.Prefix(FAVOR), "", mdb.HASH, "topic", m.Option("topic")) + }}, + mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(mdb.EXPORT, m.Prefix(FAVOR), "", mdb.HASH) + }}, + mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(mdb.IMPORT, m.Prefix(FAVOR), "", mdb.HASH) + }}, + mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { + switch arg[0] { + case "topic": + m.Option(mdb.FIELDS, "topic,count,time") + m.Cmdy(mdb.SELECT, m.Prefix(FAVOR), "", mdb.HASH) + } + }}, + + INNER: {Name: "inner", Help: "inner", Hand: func(m *ice.Message, arg ...string) { + m.Option("_process", "_field") + m.Option("_prefix", "_inner") + m.Cmdy(ctx.COMMAND, INNER) + m.Append("args", kit.Format([]string{"", m.Option("file"), m.Option("line")})) + }}, + }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { + if len(arg) > 0 && arg[0] == "_inner" { + m.Cmdy(INNER, arg[1:]) + return + } + + if len(arg) > 0 { + m.Option(mdb.FIELDS, kit.Select(m.Conf(m.Prefix(FAVOR), kit.META_FIELD), mdb.DETAIL, len(arg) > 1)) + m.Richs(m.Prefix(FAVOR), "", arg[0], func(key string, value map[string]interface{}) { + m.Cmdy(mdb.SELECT, m.Prefix(FAVOR), kit.Keys(kit.MDB_HASH, key), mdb.LIST, kit.MDB_ID, arg[1:]) + }) + m.PushAction("inner") + return + } + m.Option(mdb.FIELDS, "time,count,topic") + m.Cmdy(mdb.SELECT, m.Prefix(FAVOR), "", mdb.HASH) + m.PushAction("删除") + }}, + }, + }, nil) +} diff --git a/core/code/inner.go b/core/code/inner.go index 7201dd5a..6f49f7ad 100644 --- a/core/code/inner.go +++ b/core/code/inner.go @@ -72,6 +72,13 @@ func init() { mdb.ENGINE: {Name: "engine", Help: "引擎", Hand: func(m *ice.Message, arg ...string) { _inner_show(m, arg[0], arg[1], arg[2], arg[3:]...) }}, + + mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(m.Prefix(FAVOR), mdb.INPUTS, arg) + }}, + FAVOR: {Name: "favor", Help: "收藏", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(m.Prefix(FAVOR), mdb.INSERT, arg) + }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { if len(arg) < 2 { m.Cmdy(nfs.DIR, kit.Select("./", arg, 0)) diff --git a/misc/git/spide.go b/misc/git/spide.go index 419cb306..89440ec0 100644 --- a/misc/git/spide.go +++ b/misc/git/spide.go @@ -7,7 +7,6 @@ import ( "github.com/shylinux/icebergs/base/nfs" kit "github.com/shylinux/toolkits" - "path" "strings" ) @@ -32,20 +31,19 @@ func init() { if len(arg) == 1 { // 目录列表 - m.Option(nfs.DIR_ROOT, path.Join("usr", arg[0])) + m.Option(nfs.DIR_ROOT, arg[0]) m.Option(nfs.DIR_DEEP, "true") m.Cmdy(nfs.DIR, "./") return } if len(arg) > 1 && arg[0] == "inner" { // 代码详情 - arg[1] = kit.Select(path.Join("usr", arg[1]), arg[1], arg[1] == "action") m.Cmdy("web.code.inner", arg[1:]) return } tags := "" - m.Option(cli.CMD_DIR, path.Join("usr", arg[0])) + m.Option(cli.CMD_DIR, arg[0]) if strings.HasSuffix(arg[1], ".go") { tags = m.Cmdx(cli.SYSTEM, "gotags", arg[1]) for _, line := range strings.Split(tags, "\n") {