1
0
mirror of https://shylinux.com/x/ContextOS synced 2025-04-25 16:58:06 +08:00

add dream.layout

This commit is contained in:
shaoying 2019-11-21 22:36:49 +08:00
parent 32a6ef00f8
commit 148e8a3846
6 changed files with 40 additions and 16 deletions

View File

@ -192,6 +192,7 @@ ShyInit() {
echo "pid: $$"
echo "pane: $TMUX_PANE"
echo "begin: ${ctx_begin}"
echo "share: ${ctx_share}"
}
ShyInit && trap ShyLogout EXIT

View File

@ -4,7 +4,6 @@ import (
"errors"
"fmt"
"io"
"runtime"
"strings"
"time"
"toolkit"
@ -36,13 +35,11 @@ func (c *Context) Register(s *Context, x Server, args ...interface{}) *Context {
return s
}
func (c *Context) Plugin(s *Context, args []string) string {
runtime.GOMAXPROCS(8)
c.Register(s, nil)
m := Pulse.Spawn(s)
// m := &Message{code: 0, time: time.Now(), source: s, target: s, Meta: map[string][]string{}}
// kit.DisableLog = true
// m.Option("log.disable", true)
m.Option("log.disable", false)
m.Option("bio.modal", "action")
if len(args) == 0 {
@ -50,7 +47,7 @@ func (c *Context) Plugin(s *Context, args []string) string {
m.Echo("命令列表:\n")
for k, v := range s.Commands {
if !strings.HasPrefix(k, "_") {
m.Echo(" %s: %s\n %v\n\n", k, v.Name, v.Help)
m.Echo("--%s: %s\n %v\n\n", k, v.Name, v.Help)
}
}
m.Echo("配置列表:\n")

View File

@ -339,10 +339,10 @@ var Index = &Context{Name: "ctx", Help: "模块中心", Server: &CTX{},
}
value = m.Confv(arg[0], arg[1])
} else if len(arg) > 2 && arg[2] == "list" {
for i := 3; i < len(arg)-1; i += 1 {
for i := 3; i < len(arg); i += 1 {
m.Confv(arg[0], []interface{}{arg[1], -2}, arg[i])
}
value = m.Confv(arg[0], arg[1])
return
} else if len(arg) > 1 && arg[1] == "list" {
for i := 2; i < len(arg)-1; i += 1 {
m.Confv(arg[0], -2, arg[i])

View File

@ -19,9 +19,9 @@ func (m *Message) Log(action string, str string, arg ...interface{}) *Message {
kit.Log("error", fmt.Sprintf("stack: %s", m.Format("stack")))
}
if m.Options("log.disable") {
return m
}
// if m.Options("log.disable") {
// return m
// }
if l := m.Sess("log", false); l != nil {
if log, ok := l.target.Server.(LOGGER); ok {

View File

@ -118,10 +118,29 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
"least": 3,
}},
"dream": {Name: "dream", Help: "使命必达", Value: map[string]interface{}{
"layout": map[string]interface{}{
"three": []interface{}{
"split-window -t $dream:1.1",
"split-window -v -t $dream:1.2",
"rename-window -t $dream:1 source",
"select-layout -t $dream:1 main-horizontal",
"new-window -t $dream:2 -n docker",
"split-window -t $dream:2.1",
"split-window -v -t $dream:2.2",
"select-layout -t $dream:2 main-horizontal",
"new-window -t $dream:3 -n online",
"split-window -t $dream:3.1",
"split-window -v -t $dream:3.2",
"select-layout -t $dream:3 main-horizontal",
},
},
"topic": map[string]interface{}{
"hello": map[string]interface{}{
"ship": []interface{}{"tip", "miss.md", "task", "feed"},
"git": []interface{}{"clone https://github.com/shylinux/context"},
"ship": []interface{}{"tip", "miss.md", "task", "feed"},
"git": []interface{}{"clone https://github.com/shylinux/context"},
"layout": []interface{}{},
"tmux": []interface{}{
"split-window -t $dream:1.1",
"new-window -t $dream:2",
@ -143,11 +162,12 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
if !m.Cmds(tmux, "has-session", "-t", arg[1]) {
break
}
topic := kit.Select("hello", kit.Select(m.Option("topic"), arg, 2))
// 下载代码
home := path.Join(m.Conf("missyou", "path"), arg[1], m.Conf("missyou", "local"))
git := kit.Trans(m.Confv("prefix", "git"), "cmd_dir", home)
m.Confm("dream", []string{"topic", m.Option("topic"), "git"}, func(index int, value string) {
m.Confm("dream", []string{"topic", topic, "git"}, func(index int, value string) {
value = strings.Replace(value, "$dream", arg[1], -1)
m.Cmdx(git, strings.Split(value, " "))
})
@ -156,16 +176,21 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
m.Cmds(tmux, "set-environment", "-g", "ctx_share", m.Cmdx("dream", "share"))
m.Cmds(tmux, "new-session", "-ds", arg[1], "cmd_dir", home, "cmd_env", "TMUX", "")
m.Cmds(tmux, "set-environment", "-t", arg[1], "ctx_share", m.Cmdx("dream", "share"))
m.Confm("dream", []string{"topic", m.Option("topic"), "tmux"}, func(index int, value string) {
m.Confm("dream", []string{"layout", m.Conf("dream", []string{"topic", m.Option("topic"), "layout", "0"})}, func(index int, value string) {
value = strings.Replace(value, "$dream", arg[1], -1)
m.Cmdx(tmux, strings.Split(value, " "), "cmd_dir", home)
})
m.Confm("dream", []string{"topic", topic, "tmux"}, func(index int, value string) {
value = strings.Replace(value, "$dream", arg[1], -1)
m.Cmdx(tmux, strings.Split(value, " "), "cmd_dir", home)
})
arg = []string{"share"}
arg = []string{"share", topic}
fallthrough
case "share":
topic := kit.Select("hello", kit.Select(m.Option("topic"), arg, 1))
if len(arg) == 1 {
m.Confm("dream", []string{"topic", kit.Select("hello", m.Option("topic")), "ship"}, func(index int, value string) {
m.Confm("dream", []string{"topic", kit.Select("hello", topic), "ship"}, func(index int, value string) {
arg = append(arg, value)
})
}

View File

@ -273,6 +273,7 @@ var Index = &ctx.Context{Name: "wiki", Help: "文档中心",
return
}},
"run": {Name: "run", Help: "便签", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) {
m.Option("render", "raw")
m.Cmdy(arg)
return
}},