mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 16:58:06 +08:00
tce add some
This commit is contained in:
parent
e356b6dbf1
commit
f6cf48ac0f
10
Makefile
10
Makefile
@ -6,7 +6,6 @@ install:
|
|||||||
@go get github.com/nsf/termbox-go
|
@go get github.com/nsf/termbox-go
|
||||||
@go get github.com/skip2/go-qrcode
|
@go get github.com/skip2/go-qrcode
|
||||||
@go get github.com/gomarkdown/markdown
|
@go get github.com/gomarkdown/markdown
|
||||||
@cp etc/shy.vim ~/.vim/syntax/
|
|
||||||
@touch etc/local.shy
|
@touch etc/local.shy
|
||||||
@touch etc/local_exit.shy
|
@touch etc/local_exit.shy
|
||||||
@touch etc/init.shy
|
@touch etc/init.shy
|
||||||
@ -43,15 +42,16 @@ back_dotsfile:
|
|||||||
cp ~/.zshrc $(DOTS)
|
cp ~/.zshrc $(DOTS)
|
||||||
cp ~/.tmux.conf $(DOTS)
|
cp ~/.tmux.conf $(DOTS)
|
||||||
cp ~/.vimrc $(DOTS)
|
cp ~/.vimrc $(DOTS)
|
||||||
cp ~/.vim/syntax/shy.vim etc/
|
cp ~/.vim/syntax/shy.vim $(DOTS)
|
||||||
|
git status -sb $(DOTS)
|
||||||
|
|
||||||
load_dotsfile: ~/.zshrc ~/.tmux.conf ~/.vimrc
|
load_dotsfile: ~/.zshrc ~/.tmux.conf ~/.vimrc ~/.vim/syntax/shy.vim
|
||||||
~/.zshrc: $(DOTS)/.zshrc
|
~/.zshrc: $(DOTS)/.zshrc
|
||||||
cp $(DOTS)/.zshrc ~/
|
cp $(DOTS)/.zshrc ~/
|
||||||
~/.tmux.conf: $(DOTS)/.tmux.conf
|
~/.tmux.conf: $(DOTS)/.tmux.conf
|
||||||
cp $(DOTS)/.tmux.conf ~/
|
cp $(DOTS)/.tmux.conf ~/
|
||||||
~/.vimrc: $(DOTS)/.vimrc
|
~/.vimrc: $(DOTS)/.vimrc
|
||||||
cp $(DOTS)/.vimrc ~/
|
cp $(DOTS)/.vimrc ~/
|
||||||
~/.vim/syntax/shy.vim: etc/shy.vim
|
~/.vim/syntax/shy.vim: $(DOTS)/shy.vim
|
||||||
cp etc/shy.vim ~/.vim/syntax/
|
cp $(DOTS)/shy.vim ~/.vim/syntax/
|
||||||
|
|
||||||
|
@ -587,7 +587,7 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
"get": &ctx.Command{
|
"get": &ctx.Command{
|
||||||
Name: "get [method GET|POST] [file name filename] url arg...",
|
Name: "get [method GET|POST] [file name filename] url arg...",
|
||||||
Help: "访问服务, method: 请求方法, file: 发送文件, url: 请求地址, arg: 请求参数",
|
Help: "访问服务, method: 请求方法, file: 发送文件, url: 请求地址, arg: 请求参数",
|
||||||
Form: map[string]int{"method": 1, "file": 2, "type": 1, "body": 1},
|
Form: map[string]int{"method": 1, "file": 2, "type": 1, "body": 1, "fields": 1},
|
||||||
Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
||||||
if web, ok := m.Target().Server.(*WEB); m.Assert(ok) { // {{{
|
if web, ok := m.Target().Server.(*WEB); m.Assert(ok) { // {{{
|
||||||
if web.client == nil {
|
if web.client == nil {
|
||||||
@ -718,23 +718,62 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
m.Assert(e)
|
m.Assert(e)
|
||||||
|
|
||||||
if res.Header.Get("Content-Type") == "application/json" {
|
if res.Header.Get("Content-Type") == "application/json" {
|
||||||
result := map[string]interface{}{}
|
var result interface{}
|
||||||
json.Unmarshal(buf, &result)
|
json.Unmarshal(buf, &result)
|
||||||
for k, v := range result {
|
switch ret := result.(type) {
|
||||||
|
case map[string]interface{}:
|
||||||
|
for k, v := range ret {
|
||||||
switch value := v.(type) {
|
switch value := v.(type) {
|
||||||
case string:
|
case string:
|
||||||
m.Append(k, value)
|
m.Append(k, value)
|
||||||
case float64:
|
case float64:
|
||||||
m.Append(k, fmt.Sprintf("%d", int(value)))
|
m.Append(k, fmt.Sprintf("%d", int(value)))
|
||||||
default:
|
|
||||||
m.Put("append", k, value)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
m.Table()
|
||||||
|
return
|
||||||
|
case []interface{}:
|
||||||
|
fields := map[string]bool{}
|
||||||
|
for _, k := range strings.Split(m.Option("fields"), " ") {
|
||||||
|
if k != "" {
|
||||||
|
fields[k] = true
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Meta["append"] = append(m.Meta["append"], k)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, r := range ret {
|
||||||
|
if rr, ok := r.(map[string]interface{}); ok {
|
||||||
|
for k, v := range rr {
|
||||||
|
switch value := v.(type) {
|
||||||
|
case string:
|
||||||
|
if _, ok := fields[k]; len(fields) == 0 || ok {
|
||||||
|
m.Add("append", k, strings.Replace(value, "\n", " ", -1))
|
||||||
|
}
|
||||||
|
case float64:
|
||||||
|
if _, ok := fields[k]; len(fields) == 0 || ok {
|
||||||
|
m.Add("append", k, strings.Replace(fmt.Sprintf("%d", int(value)), "\n", " ", -1))
|
||||||
|
}
|
||||||
|
case map[string]interface{}:
|
||||||
|
for kk, vv := range value {
|
||||||
|
key := k + "." + kk
|
||||||
|
if _, ok := fields[key]; len(fields) == 0 || ok {
|
||||||
|
m.Add("append", key, strings.Replace(fmt.Sprintf("%v", vv), "\n", " ", -1))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.Table()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
result := string(buf)
|
result := string(buf)
|
||||||
m.Echo("%s", result)
|
m.Echo("%s", result)
|
||||||
m.Append("response", result)
|
// m.Append("response", result)
|
||||||
} // }}}
|
} // }}}
|
||||||
}},
|
}},
|
||||||
"post": &ctx.Command{Name: "post", Help: "访问服务",
|
"post": &ctx.Command{Name: "post", Help: "访问服务",
|
||||||
@ -1203,15 +1242,24 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
"/json": &ctx.Command{Name: "/json", Help: "json响应", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
"/json": &ctx.Command{Name: "/json", Help: "json响应", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
||||||
w := m.Optionv("response").(http.ResponseWriter) // {{{
|
w := m.Optionv("response").(http.ResponseWriter) // {{{
|
||||||
|
|
||||||
meta := map[string][]string{}
|
meta := map[string]interface{}{}
|
||||||
if len(m.Meta["result"]) > 0 {
|
if len(m.Meta["result"]) > 0 {
|
||||||
meta["result"] = m.Meta["result"]
|
meta["result"] = m.Meta["result"]
|
||||||
}
|
}
|
||||||
if len(m.Meta["append"]) > 0 {
|
if len(m.Meta["append"]) > 0 {
|
||||||
meta["append"] = m.Meta["append"]
|
meta["append"] = m.Meta["append"]
|
||||||
for _, v := range m.Meta["append"] {
|
for _, v := range m.Meta["append"] {
|
||||||
|
m.Log("json", "won %v %v", v, m.Meta[v])
|
||||||
|
if _, ok := m.Data[v]; ok {
|
||||||
|
meta[v] = m.Data[v]
|
||||||
|
m.Log("json", "1won %v %v", v, meta[v])
|
||||||
|
m.Log("json", "1won %v %v", v, meta[v], m.Meta[v])
|
||||||
|
} else if _, ok := m.Meta[v]; ok {
|
||||||
|
m.Log("json", "2won %v %v", v, meta[v])
|
||||||
meta[v] = m.Meta[v]
|
meta[v] = m.Meta[v]
|
||||||
}
|
}
|
||||||
|
m.Log("json", "won %v %v", v, meta[v])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if b, e := json.Marshal(meta); m.Assert(e) {
|
if b, e := json.Marshal(meta); m.Assert(e) {
|
||||||
@ -1554,6 +1602,38 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
|||||||
msg.Cmd("get", "method", "POST", "evaluating_add/", "questions", qs)
|
msg.Cmd("get", "method", "POST", "evaluating_add/", "questions", qs)
|
||||||
m.Add("append", "hi", "hello")
|
m.Add("append", "hi", "hello")
|
||||||
}},
|
}},
|
||||||
|
"/lookup": &ctx.Command{Name: "user", Help: "应用示例", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
||||||
|
if len(arg) > 0 {
|
||||||
|
m.Option("service", arg[0])
|
||||||
|
}
|
||||||
|
msg := m.Sess("cli").Cmd("system", "sd", "lookup", m.Option("service"))
|
||||||
|
|
||||||
|
rs := strings.Split(msg.Result(0), "\n")
|
||||||
|
i := 0
|
||||||
|
for ; i < len(rs); i++ {
|
||||||
|
if len(rs[i]) == 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
fields := strings.SplitN(rs[i], ": ", 2)
|
||||||
|
m.Append(fields[0], fields[1])
|
||||||
|
}
|
||||||
|
|
||||||
|
lists := []interface{}{}
|
||||||
|
for i += 2; i < len(rs); i++ {
|
||||||
|
fields := strings.SplitN(rs[i], " ", 3)
|
||||||
|
if len(fields) < 3 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
lists = append(lists, map[string]interface{}{
|
||||||
|
"ip": fields[0],
|
||||||
|
"port": fields[1],
|
||||||
|
"tags": fields[2],
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Appendv("lists", lists)
|
||||||
|
m.Log("log", "%v", lists)
|
||||||
|
}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user