mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 16:58:06 +08:00
add tmux.favor
This commit is contained in:
parent
cf731a58e3
commit
f1bb3ad429
@ -20,7 +20,7 @@ Plug 'tpope/vim-fugitive'
|
|||||||
Plug 'gcmt/taboo.vim'
|
Plug 'gcmt/taboo.vim'
|
||||||
set sessionoptions+=tabpages,globals
|
set sessionoptions+=tabpages,globals
|
||||||
|
|
||||||
Plug 'fatih/vim-go'
|
let g:go_highlight_functions=1
|
||||||
Plug 'fatih/vim-go'
|
Plug 'fatih/vim-go'
|
||||||
let g:go_version_warning=0
|
let g:go_version_warning=0
|
||||||
Plug 'chr4/nginx.vim'
|
Plug 'chr4/nginx.vim'
|
||||||
@ -165,3 +165,5 @@ cnoremap RR :source ~/.vimrc<CR>
|
|||||||
colorscheme torte
|
colorscheme torte
|
||||||
highlight Comment cterm=reverse ctermfg=yellow
|
highlight Comment cterm=reverse ctermfg=yellow
|
||||||
"}}}
|
"}}}
|
||||||
|
"
|
||||||
|
nnoremap <F3> :NERDTreeToggle<CR>
|
||||||
|
@ -518,7 +518,7 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
Form: map[string]int{
|
Form: map[string]int{
|
||||||
"which": 1, "method": 1, "args": 1, "headers": 2,
|
"which": 1, "method": 1, "args": 1, "headers": 2,
|
||||||
"content_type": 1, "content_data": 1, "body": 1, "file": 2,
|
"content_type": 1, "content_data": 1, "body": 1, "file": 2,
|
||||||
"parse": 1, "temp": -1, "temp_expire": 1, "save": 1,
|
"parse": 1, "temp": -1, "temp_expire": 1, "save": 1, "saves": 1,
|
||||||
}, Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) {
|
}, Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) {
|
||||||
// 查看配置
|
// 查看配置
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
@ -726,6 +726,15 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
m.Echo(string(buf))
|
m.Echo(string(buf))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if m.Options("saves") {
|
||||||
|
f, p, e := kit.Create(m.Option("saves"))
|
||||||
|
m.Assert(e)
|
||||||
|
defer f.Close()
|
||||||
|
for _, v := range m.Meta["result"] {
|
||||||
|
f.WriteString(v)
|
||||||
|
}
|
||||||
|
m.Set("result").Echo(p)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}},
|
}},
|
||||||
|
|
||||||
|
@ -480,7 +480,7 @@ var Index = &ctx.Context{Name: "chat", Help: "会议中心",
|
|||||||
case "file":
|
case "file":
|
||||||
m.Cmdy("/download/" + h)
|
m.Cmdy("/download/" + h)
|
||||||
case "wiki":
|
case "wiki":
|
||||||
m.Cmdy("web.wiki.note", kit.Format(value["code"]))
|
m.Cmdy("ssh._route", value["dream"], "web.wiki.note", value["code"])
|
||||||
}
|
}
|
||||||
m.Grow("share", nil, map[string]interface{}{
|
m.Grow("share", nil, map[string]interface{}{
|
||||||
"time": m.Time(),
|
"time": m.Time(),
|
||||||
@ -496,7 +496,7 @@ var Index = &ctx.Context{Name: "chat", Help: "会议中心",
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}},
|
}},
|
||||||
"share": &ctx.Command{Name: "share type code", Help: "共享链接", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) {
|
"share": &ctx.Command{Name: "share type code", Help: "共享链接", Hand: func(m *ctx.Message, c *ctx.Context, cmd string, arg ...string) (e error) {
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
fields := strings.Split(m.Conf("share", "meta.fields"), " ")
|
fields := strings.Split(m.Conf("share", "meta.fields"), " ")
|
||||||
m.Grows("share", nil, func(meta map[string]interface{}, index int, value map[string]interface{}) {
|
m.Grows("share", nil, func(meta map[string]interface{}, index int, value map[string]interface{}) {
|
||||||
@ -505,14 +505,15 @@ var Index = &ctx.Context{Name: "chat", Help: "会议中心",
|
|||||||
m.Table()
|
m.Table()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
h := kit.Hashs("uniq")
|
h := kit.ShortKey(m.Confm(cmd, "hash"), 6)
|
||||||
m.Confv("share", []string{"hash", h}, map[string]interface{}{
|
m.Confv(cmd, []string{"hash", h}, map[string]interface{}{
|
||||||
"from": m.Option("username"),
|
"from": m.Option("username"),
|
||||||
"time": m.Time(),
|
"time": m.Time(),
|
||||||
"type": arg[0],
|
"type": arg[0],
|
||||||
"code": arg[1],
|
"code": arg[1],
|
||||||
|
"dream": kit.Select("", arg, 2),
|
||||||
})
|
})
|
||||||
m.Echo(h)
|
m.Echo("%s/chat/share/%s", m.Cmdx(".spide", "self", "client", "url"), h)
|
||||||
return
|
return
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
|
@ -58,6 +58,15 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
|
|||||||
"template": map[string]interface{}{"shy": Dockfile},
|
"template": map[string]interface{}{"shy": Dockfile},
|
||||||
"output": "etc/Dockerfile",
|
"output": "etc/Dockerfile",
|
||||||
}},
|
}},
|
||||||
|
"tmux": {Name: "tmux", Help: "终端", Value: map[string]interface{}{
|
||||||
|
"favor": map[string]interface{}{
|
||||||
|
"index": []interface{}{
|
||||||
|
"ctx_dev ctx_share",
|
||||||
|
"curl -s $ctx_dev/publish/auto.sh >auto.sh",
|
||||||
|
"source auto.sh",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}},
|
||||||
"git": {Name: "git", Help: "记录", Value: map[string]interface{}{
|
"git": {Name: "git", Help: "记录", Value: map[string]interface{}{
|
||||||
"alias": map[string]interface{}{"s": "status", "b": "branch"},
|
"alias": map[string]interface{}{"s": "status", "b": "branch"},
|
||||||
}},
|
}},
|
||||||
@ -159,6 +168,9 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"session": map[string]interface{}{"meta": map[string]interface{}{
|
||||||
|
"fields": "river dream favor story stage order expire",
|
||||||
|
}},
|
||||||
"share": map[string]interface{}{"meta": map[string]interface{}{
|
"share": map[string]interface{}{"meta": map[string]interface{}{
|
||||||
"fields": "river dream favor story stage order expire",
|
"fields": "river dream favor story stage order expire",
|
||||||
}},
|
}},
|
||||||
@ -186,11 +198,16 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
|
|||||||
m.Cmd(git, strings.Split(value, " "))
|
m.Cmd(git, strings.Split(value, " "))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 创建文档
|
||||||
|
m.Cmd("cli.system", "mkdir", "-p", path.Join(home, "wiki"))
|
||||||
|
m.Cmd("cli.system", "touch", path.Join(home, "wiki/miss.md"))
|
||||||
|
|
||||||
// 创建终端
|
// 创建终端
|
||||||
share := m.Cmdx(cmd, "share", topic)
|
share := m.Cmdx(cmd, "share", topic)
|
||||||
m.Cmd(tmux, "set-environment", "-g", "ctx_share", share)
|
m.Cmd(tmux, "set-environment", "-g", "ctx_share", share)
|
||||||
m.Cmd(tmux, "new-session", "-ds", arg[1], "cmd_dir", home, "cmd_env", "TMUX", "")
|
m.Cmd(tmux, "new-session", "-ds", arg[1], "cmd_dir", home, "cmd_env", "TMUX", "")
|
||||||
m.Cmd(tmux, "set-environment", "-t", arg[1], "ctx_share", share)
|
m.Cmd(tmux, "set-environment", "-t", arg[1], "ctx_share", share)
|
||||||
|
m.Cmd(tmux, "set-environment", "-t", arg[1], "ctx_dev", os.Getenv("ctx_self"))
|
||||||
m.Confm(cmd, []string{"layout", m.Conf(cmd, []string{"topic", topic, "layout", "0"})}, func(index int, value string) {
|
m.Confm(cmd, []string{"layout", m.Conf(cmd, []string{"topic", topic, "layout", "0"})}, func(index int, value string) {
|
||||||
value = strings.Replace(value, "$dream", arg[1], -1)
|
value = strings.Replace(value, "$dream", arg[1], -1)
|
||||||
m.Cmd(tmux, strings.Split(value, " "), "cmd_dir", home)
|
m.Cmd(tmux, strings.Split(value, " "), "cmd_dir", home)
|
||||||
@ -199,6 +216,7 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
|
|||||||
value = strings.Replace(value, "$dream", arg[1], -1)
|
value = strings.Replace(value, "$dream", arg[1], -1)
|
||||||
m.Cmd(tmux, strings.Split(value, " "), "cmd_dir", home)
|
m.Cmd(tmux, strings.Split(value, " "), "cmd_dir", home)
|
||||||
})
|
})
|
||||||
|
m.Conf("dream", "session."+m.Option("dream")+"."+"share", share)
|
||||||
m.Echo(share)
|
m.Echo(share)
|
||||||
|
|
||||||
case "share":
|
case "share":
|
||||||
@ -658,11 +676,29 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch arg[3] {
|
switch arg[3] {
|
||||||
// 操作缓存
|
case "favor":
|
||||||
case "buffer":
|
env := m.Cmdx(prefix, "show-environment", "-g") + m.Cmdx(prefix, "show-environment")
|
||||||
if len(arg) > 5 {
|
for _, l := range strings.Split(env, "\n") {
|
||||||
m.Cmdy(prefix, "set-buffer", "-b", arg[4], arg[5])
|
if strings.HasPrefix(l, "ctx_") {
|
||||||
|
v := strings.SplitN(l, "=", 2)
|
||||||
|
m.Option(v[0], v[1])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m.Confm("tmux", "favor."+kit.Select("index", arg, 4), func(index int, value string) {
|
||||||
|
if index == 0 {
|
||||||
|
keys := strings.Split(value, " ")
|
||||||
|
value = "export"
|
||||||
|
for _, k := range keys {
|
||||||
|
value += " " + k + "=" + m.Option(k)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
m.Cmdy(prefix, "send-keys", "-t", target, value, "Enter")
|
||||||
|
})
|
||||||
|
|
||||||
|
case "buffer":
|
||||||
|
// 操作缓存
|
||||||
if len(arg) > 4 {
|
if len(arg) > 4 {
|
||||||
m.Cmdy(prefix, "show-buffer", "-b", arg[4])
|
m.Cmdy(prefix, "show-buffer", "-b", arg[4])
|
||||||
return
|
return
|
||||||
@ -676,8 +712,8 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
// 面板列表
|
|
||||||
case "pane":
|
case "pane":
|
||||||
|
// 面板列表
|
||||||
m.Cmdy(prefix, "list-panes", "-a", "cmd_parse", "cut", " ", "8", "pane_name size some lines bytes haha pane_id tag")
|
m.Cmdy(prefix, "list-panes", "-a", "cmd_parse", "cut", " ", "8", "pane_name size some lines bytes haha pane_id tag")
|
||||||
m.Meta["append"] = []string{"pane_id", "pane_name", "size", "lines", "bytes", "tag"}
|
m.Meta["append"] = []string{"pane_id", "pane_name", "size", "lines", "bytes", "tag"}
|
||||||
m.Table(func(index int, value map[string]string) {
|
m.Table(func(index int, value map[string]string) {
|
||||||
@ -689,13 +725,15 @@ var Index = &ctx.Context{Name: "code", Help: "代码中心",
|
|||||||
m.Sort("pane_name")
|
m.Sort("pane_name")
|
||||||
m.Table()
|
m.Table()
|
||||||
return
|
return
|
||||||
// 运行命令
|
|
||||||
case "run":
|
case "run":
|
||||||
|
// 运行命令
|
||||||
arg = arg[1:]
|
arg = arg[1:]
|
||||||
fallthrough
|
fallthrough
|
||||||
default:
|
default:
|
||||||
m.Cmdy(prefix, "send-keys", "-t", target, strings.Join(arg[3:], " "), "Enter")
|
if len(arg) > 3 {
|
||||||
time.Sleep(1 * time.Second)
|
m.Cmdy(prefix, "send-keys", "-t", target, strings.Join(arg[3:], " "), "Enter")
|
||||||
|
time.Sleep(1 * time.Second)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,15 +23,22 @@ kit clip "粘贴板" private "web.code.tmux" "" "" "" "buffer" \
|
|||||||
button "返回" cb Last
|
button "返回" cb Last
|
||||||
|
|
||||||
kit tmux "终端" private "web.code.tmux" \
|
kit tmux "终端" private "web.code.tmux" \
|
||||||
text "context" name session imports plugin_session action auto \
|
text "" name session imports plugin_session action auto \
|
||||||
text "" name window imports plugin_window action auto \
|
text "" name window imports plugin_window action auto \
|
||||||
text "" name pane imports plugin_pane view char action auto \
|
text "" name pane imports plugin_pane view char action auto \
|
||||||
text "" name cmd \
|
|
||||||
exports session session "" window window "" pane pane "" \
|
exports session session "" window window "" pane pane "" \
|
||||||
ueature detail "复制" "下载" "修改" \
|
|
||||||
button "查看" action auto \
|
button "查看" action auto \
|
||||||
button "返回" cb Last
|
button "返回" cb Last
|
||||||
|
|
||||||
|
kit tmuxs "终端" private "web.code.tmux" \
|
||||||
|
text "" name session imports plugin_session \
|
||||||
|
text "" name window imports plugin_window \
|
||||||
|
text "" name pane imports plugin_pane view char \
|
||||||
|
select "" name cmd values "favor buffer pane run"\
|
||||||
|
text "" name arg \
|
||||||
|
ueature detail "复制" "下载" "修改" \
|
||||||
|
button "执行"
|
||||||
|
|
||||||
kit image "镜像" private "web.code.docker" "image" \
|
kit image "镜像" private "web.code.docker" "image" \
|
||||||
text "" name pos imports plugin_REPOSITORY \
|
text "" name pos imports plugin_REPOSITORY \
|
||||||
text "" name tag imports plugin_TAG \
|
text "" name tag imports plugin_TAG \
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
kit share "共享" public "web.chat.share" \
|
||||||
|
select "" name type values "wiki file" \
|
||||||
|
text "miss.md" name story imports plugin_story view long \
|
||||||
|
text "" name dream imports plugin_you \
|
||||||
|
button "共享"
|
||||||
|
|
||||||
kit note "记事本" public "ssh._route" _ "web.wiki.note" \
|
kit note "记事本" public "ssh._route" _ "web.wiki.note" \
|
||||||
text "" name dream imports plugin_you action auto \
|
text "" name dream imports plugin_you action auto \
|
||||||
text "miss.md" name story imports plugin_story view long action auto \
|
text "miss.md" name story imports plugin_story view long action auto \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user