1
0
forked from x/ContextOS

mac pro some

This commit is contained in:
shaoying 2018-07-01 19:15:04 +08:00
parent d0c3239901
commit 85db6fb817
4 changed files with 31 additions and 54 deletions

View File

@ -13,8 +13,13 @@ syn keyword shStatement break cd chdir continue eval exec exit kill newgrp pwd r
syn keyword shStatement source return function
syn keyword shStatement if else elif end for
syn keyword shStatement let var
syn keyword shStatement cache
syn keyword shStatement config
syn match shStatement "\(^\|\t\|$(\)cache"
syn match shStatement "\(^\|\t\|$(\)config"
syn match shStatement "\(^\|\t\|$(\)detail"
syn match shStatement "\(^\|\t\|$(\)option"
syn match shStatement "\(^\|\t\|$(\)append"
syn match shStatement "\(^\|\t\|$(\)result"
syn keyword shCommand command
syn keyword shCommand open

View File

@ -270,6 +270,8 @@ func (cli *CLI) Close(m *ctx.Message, arg ...string) bool { // {{{
if _, ok := m.Source().Server.(*CLI); ok {
// p.target = cli.target
}
msg := m.Sesss("nfs")
msg.Target().Close(msg)
case m.Source():
if m.Name == "aaa" {
if !cli.Context.Close(m.Spawn(cli.Context), arg...) {
@ -285,13 +287,13 @@ func (cli *CLI) Close(m *ctx.Message, arg ...string) bool { // {{{
var Pulse *ctx.Message
var Index = &ctx.Context{Name: "cli", Help: "管理中心",
Caches: map[string]*ctx.Cache{},
Configs: map[string]*ctx.Config{
"time": &ctx.Config{Name: "time", Value: "0", Help: "所有模块的当前目录", Hand: func(m *ctx.Message, x *ctx.Config, arg ...string) string {
Caches: map[string]*ctx.Cache{
"time": &ctx.Cache{Name: "time", Value: "0", Help: "所有模块的当前目录", Hand: func(m *ctx.Message, x *ctx.Cache, arg ...string) string {
t := time.Now().Unix()
return fmt.Sprintf("%d", t)
}},
},
Configs: map[string]*ctx.Config{},
Commands: map[string]*ctx.Command{
"alias": &ctx.Command{Name: "alias [short [long]]|[delete short]", Help: "查看、定义或删除命令别名, short: 命令别名, long: 命令原名, delete: 删除别名", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
if cli, ok := m.Target().Server.(*CLI); m.Assert(ok) && !m.Caps("skip") { // {{{
@ -322,30 +324,26 @@ var Index = &ctx.Context{Name: "cli", Help: "管理中心",
}
} // }}}
}},
"time": &ctx.Command{Name: "time [parse when] format when",
"time": &ctx.Command{Name: "time [parse when] when",
Form: map[string]int{"parse": 1},
Help: "睡眠, time(ns/us/ms/s/m/h): 时间值(纳秒/微秒/毫秒/秒/分钟/小时)", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
t := time.Now() // {{{
if m.Options("parse") {
f := "2006-01-02 15:04:05"
if len(arg) > 0 {
if i, e := strconv.Atoi(arg[0]); e == nil {
t = time.Unix(int64(i), 0)
}
}
if m.Options("parse") {
n, e := time.ParseInLocation(f, m.Option("parse"), time.Local)
m.Assert(e)
t = n
}
f := ""
if len(arg) > 0 {
n, e := strconv.Atoi(arg[0])
m.Assert(e)
t = time.Unix(int64(n), 0)
f = "2006-01-02 15:04:05"
}
if f == "" {
m.Echo("%d", t.Unix())
} else {
m.Echo(" ")
m.Echo(t.Format(f))
} // }}}
// }}}
}},
"express": &ctx.Command{Name: "express exp", Help: "表达式运算", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
result := "false" // {{{
@ -569,19 +567,13 @@ var Index = &ctx.Context{Name: "cli", Help: "管理中心",
case "@":
m.Echo(msg.Conf(arg[1]))
}
case 4:
switch arg[0] {
case "$":
m.Echo(arg[2])
case "@":
m.Echo(arg[2])
}
default:
last := len(arg) - 1
switch arg[0] {
case "$":
m.Result(0, "cache", arg[1:])
m.Result(0, arg[2:last])
case "@":
m.Result(0, "config", arg[1:])
m.Result(0, arg[2:last])
}
}
} else {

View File

@ -2434,7 +2434,7 @@ var Index = &Context{Name: "ctx", Help: "模块中心",
// }}}
}},
"detail": &Command{Name: "detail [index]", Help: "查看或添加参数", Hand: func(m *Message, c *Context, key string, arg ...string) {
"detail": &Command{Name: "detail [index [value...]]", Help: "查看或添加参数", Hand: func(m *Message, c *Context, key string, arg ...string) {
msg := m.Sesss("cli", false) // {{{
switch len(arg) {
case 0:
@ -2475,7 +2475,7 @@ var Index = &Context{Name: "ctx", Help: "模块中心",
case 0:
m.Echo("%v\n", msg.Meta["result"])
default:
msg.Set("result", arg...)
msg.Result(-2, arg)
} // }}}
}},
"append": &Command{Name: "append [key [value...]]", Help: "查看或添加附加值", Hand: func(m *Message, c *Context, key string, arg ...string) {

View File

@ -17,7 +17,6 @@ import ( // {{{
"mime/multipart"
"path/filepath"
"bufio"
"fmt"
"io"
"os"
@ -200,7 +199,6 @@ func (web *WEB) Spawn(m *ctx.Message, c *ctx.Context, arg ...string) ctx.Server
// }}}
func (web *WEB) Begin(m *ctx.Message, arg ...string) ctx.Server { // {{{
m.Sesss("cli", "cli")
web.Context.Master(nil)
web.Caches["route"] = &ctx.Cache{Name: "请求路径", Value: "/" + web.Context.Name + "/", Help: "请求路径"}
web.Caches["register"] = &ctx.Cache{Name: "已初始化(yes/no)", Value: "no", Help: "模块是否已初始化"}
@ -277,7 +275,7 @@ func (web *WEB) Start(m *ctx.Message, arg ...string) bool { // {{{
m.Log("info", nil, "protocol [%s]", m.Cap("protocol"))
web.Server = &http.Server{Addr: m.Cap("address"), Handler: web}
web.Configs["logheaders"] = &ctx.Config{Name: "日志输出报文头(yes/no)", Value: "yes", Help: "日志输出报文头"}
web.Configs["logheaders"] = &ctx.Config{Name: "日志输出报文头(yes/no)", Value: "no", Help: "日志输出报文头"}
m.Capi("nserve", 1)
if web.Message = m; m.Cap("protocol") == "https" {
@ -524,27 +522,9 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
}
})
case "script":
cli := m.Find("cli")
lex := m.Find("lex")
mux.Trans(m, arg[1], func(m *ctx.Message, c *ctx.Context, key string, a ...string) {
f, e := os.Open(arg[2])
line, bio := "", bufio.NewReader(f)
if e != nil {
line = arg[2]
}
for {
if line = strings.TrimSpace(line); line != "" {
lex.Cmd("split", line, "void")
cli.Wait = make(chan bool)
cli.Cmd(lex.Meta["result"])
m.Meta["result"] = cli.Meta["result"]
}
if line, e = bio.ReadString('\n'); e != nil {
break
}
}
msg := m.Find("cli").Cmd("source", arg[2])
m.Copy(msg, "result").Copy(msg, "append")
})
}
} // }}}