diff --git a/src/contexts/cli/cli.go b/src/contexts/cli/cli.go index 85147bd2..e3e0f1bd 100644 --- a/src/contexts/cli/cli.go +++ b/src/contexts/cli/cli.go @@ -157,9 +157,46 @@ var Index = &ctx.Context{Name: "cli", Help: "管理中心", "github.com/go-cas/cas", }, "plugin": map[string]interface{}{ "path": "src/plugin", "list": []interface{}{ - map[string]interface{}{"name": "index.go", "text": ""}, - map[string]interface{}{"name": "index.js", "text": ""}, - map[string]interface{}{"name": "local.shy", "text": ""}, + map[string]interface{}{"name": "index.go", "text": `package main + +import ( + "contexts/cli" + "contexts/ctx" + "toolkit" + "fmt" + "os" +) + +var Index = &ctx.Context{Name: "test", Help: "测试工具", + Caches: map[string]*ctx.Cache{}, + Configs: map[string]*ctx.Config{ + "_index": &ctx.Config{Name: "index", Value: []interface{}{ + map[string]interface{}{"componet_name": "demo", "componet_help": "demo", + "componet_tmpl": "componet", "componet_view": "componet", "componet_init": "", + "componet_type": "public", "componet_ctx": "demo", "componet_cmd": "demo", + "componet_args": []interface{}{}, "inputs": []interface{}{ + map[string]interface{}{"type": "text", "name": "pod", "value": "hello world"}, + map[string]interface{}{"type": "button", "value": "执行"}, + }, + }, + }}, + }, + Commands: map[string]*ctx.Command{ + "demo": {Name: "demo", Help: "demo", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) { + m.Echo(kit.Select("hello world", arg, 0)) + return + }}, + }, +} + +func main() { + fmt.Print(cli.Index.Plugin(Index, os.Args[1:])) +} +`}, map[string]interface{}{"name": "index.js", "text": ` +{init: function(page, pane, field, option, output) { + kit.Log("hello world") +}} +`}, map[string]interface{}{"name": "local.shy", "text": ` `}, }, }, "script": map[string]interface{}{ "path": "usr/script", @@ -779,6 +816,9 @@ var Index = &ctx.Context{Name: "cli", Help: "管理中心", m.Confm("project", "plugin.list", func(index int, value map[string]interface{}) { m.Cmd("nfs.copy", path.Join(q, kit.Format(value["name"])), path.Join(p, kit.Format(value["name"]))) }) + for _, v := range arg[1:] { + m.Cmd("nfs.copy", path.Join(q, v), path.Join(p, v)) + } m.Cmdy("nfs.dir", q, "time", "size", "hash", "path") return e } @@ -838,7 +878,7 @@ var Index = &ctx.Context{Name: "cli", Help: "管理中心", if s, e := p.Lookup("Index"); m.Assert(e) { msg := m.Spawn(c.Register(*(s.(**ctx.Context)), nil, arg[0])).Cmd("_init", arg[1:]) msg.Cap("stream", arg[0]) - msg.Confm("index", func(index int, value map[string]interface{}) { + msg.Confm("_index", func(index int, value map[string]interface{}) { value["componet_ctx"] = "cli." + arg[0] m.Conf("ssh.componet", []interface{}{arg[0], index}, value) m.Add("append", "index", index) diff --git a/src/contexts/cli/version.go b/src/contexts/cli/version.go index 2894036f..34545580 100644 --- a/src/contexts/cli/version.go +++ b/src/contexts/cli/version.go @@ -4,5 +4,5 @@ var version = struct { host string self int }{ - "2019-07-15 14:19:05", "ZYB-20190522USI", 148, + "2019-07-15 20:46:47", "ZYB-20190522USI.ubuntu", 168, } diff --git a/src/contexts/ctx/core.go b/src/contexts/ctx/core.go index e6b846c1..48b7e1a2 100644 --- a/src/contexts/ctx/core.go +++ b/src/contexts/ctx/core.go @@ -35,6 +35,7 @@ func (c *Context) Plugin(s *Context, args []string) string { c.Register(s, nil) m := &Message{code: 0, time: time.Now(), source: s, target: s, Meta: map[string][]string{}} m.Option("log.disable", true) + m.Option("cli.modal", "action") if len(args) == 0 { m.Echo("%s: %s\n\n", s.Name, s.Help) diff --git a/src/contexts/ssh/ssh.go b/src/contexts/ssh/ssh.go index 21533925..3e08d745 100644 --- a/src/contexts/ssh/ssh.go +++ b/src/contexts/ssh/ssh.go @@ -503,7 +503,6 @@ var Index = &ctx.Context{Name: "ssh", Help: "集群中心", "tool": &ctx.Command{Name: "tool", Help: "用户", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) { if len(arg) == 0 { m.Confm("componet", func(key string, index int, value map[string]interface{}) { - m.Log("fuck", "what %v %v %v", m.Option("username"), m.Conf("runtime", "user.name"), m.Conf("runtime", "work.name")) if kit.Format(value["componet_type"]) != "public" && m.Option("username") != m.Conf("runtime", "work.name") && m.Option("username") != m.Conf("runtime", "user.name") { return } @@ -558,7 +557,11 @@ var Index = &ctx.Context{Name: "ssh", Help: "集群中心", m.Add("append", "help", value["componet_help"]) m.Add("append", "view", value["componet_view"]) if kit.Right(value["componet_init"]) { - m.Add("append", "init", m.Cmdx("nfs.load", path.Join("usr/librarys/plugin", kit.Format(value["componet_init"])), -1)) + script := m.Cmdx("nfs.load", path.Join(m.Conf("cli.publish", "path"), arg[0], kit.Format(value["componet_init"])), -1) + if script == "" { + script = m.Cmdx("nfs.load", path.Join("usr/librarys/plugin", kit.Format(value["componet_init"])), -1) + } + m.Add("append", "init", script) } else { m.Add("append", "init", "") } @@ -1101,7 +1104,7 @@ var Index = &ctx.Context{Name: "ssh", Help: "集群中心", m.Option("bench", m.Cmdx("aaa.sess", "bench", "select")) // 权限检查 - if !m.Cmds("aaa.work", "right", "remote", arg[0]) { + if arg[0] != "tool" && !m.Cmds("aaa.work", "right", "remote", arg[0]) { m.Echo("no right %s %s", "remote", arg[0]) return } diff --git a/src/plugin/sort/index.go b/src/plugin/sort/index.go index bc3beac0..13c17854 100644 --- a/src/plugin/sort/index.go +++ b/src/plugin/sort/index.go @@ -63,7 +63,7 @@ var Index = &ctx.Context{Name: "sort", Help: "sort code", "data": &ctx.Config{Name: "data", Value: map[string]interface{}{ "seed": []int{47, 59, 81, 40, 56, 0, 94, 11, 18, 25}, }}, - "index": &ctx.Config{Name: "index", Value: []interface{}{ + "_index": &ctx.Config{Name: "index", Value: []interface{}{ map[string]interface{}{"componet_name": "select", "componet_help": "选择排序", "componet_tmpl": "componet", "componet_view": "componet", "componet_init": "", "componet_type": "public", "componet_ctx": "sort", "componet_cmd": "select", diff --git a/src/plugin/test/index.go b/src/plugin/test/index.go index 752e3c80..c91db5f8 100644 --- a/src/plugin/test/index.go +++ b/src/plugin/test/index.go @@ -134,7 +134,7 @@ var Index = &ctx.Context{Name: "test", Help: "测试工具", "prefix0": {Name: "prefix0", Help: "请求前缀", Value: "uri["}, "prefix1": {Name: "prefix1", Help: "参数前缀", Value: "request_param["}, - "index": &ctx.Config{Name: "index", Value: []interface{}{ + "_index": &ctx.Config{Name: "index", Value: []interface{}{ map[string]interface{}{"componet_name": "status", "componet_help": "状态", "componet_tmpl": "componet", "componet_view": "Company", "componet_init": "", "componet_type": "private", "componet_ctx": "test", "componet_cmd": "diff",