diff --git a/base/cli/forever.go b/base/cli/forever.go index c2317d05..813976fb 100644 --- a/base/cli/forever.go +++ b/base/cli/forever.go @@ -55,8 +55,12 @@ func init() { for { logs.Println("run %s", kit.Join(arg, ice.SP)) if m.Sleep300ms(); IsSuccess(m.Cmd(SYSTEM, arg)) { - logs.Println(ice.EXIT) + logs.Println(ice.EXIT) // 正常退出 break + } else { + if logs.Println(); nfs.ExistsFile(m, "var/log/bench.log") { + nfs.Rename(m, "var/log/bench.log", kit.Format("var/log/bench.%s.log", logs.Now().Format("20060102-150405"))) + } } } }}, diff --git a/base/ctx/config.go b/base/ctx/config.go index 9ad2ce83..6ef44845 100644 --- a/base/ctx/config.go +++ b/base/ctx/config.go @@ -155,3 +155,8 @@ func Load(m *ice.Message, arg ...string) *ice.Message { func ConfAction(args ...ice.Any) ice.Actions { return ice.Actions{ice.CTX_INIT: mdb.AutoConfig(args...)} } +func ConfigFromOption(m *ice.Message, arg ...string) { + for _, k := range arg { + m.Config(k, kit.Select(m.Config(k), m.Option(k))) + } +} diff --git a/base/web/web.go b/base/web/web.go index 0cadf780..ef600b13 100644 --- a/base/web/web.go +++ b/base/web/web.go @@ -95,7 +95,7 @@ func (frame *Frame) Start(m *ice.Message, arg ...string) bool { } }) - gdb.Event(m, SERVE_START) + gdb.Event(m, SERVE_START, arg) defer gdb.Event(m, SERVE_STOP) frame.Message, frame.Server = m, &http.Server{Handler: frame} diff --git a/core/chat/footer.go b/core/chat/footer.go index 59be1447..2a6fe566 100644 --- a/core/chat/footer.go +++ b/core/chat/footer.go @@ -27,7 +27,7 @@ func init() { } }}, }, ctx.CmdAction(EMAIL, `shylinuxc@gmail.com`), web.ApiAction()), Hand: func(m *ice.Message, arg ...string) { - m.Echo(m.Config(EMAIL)) + m.Result(m.Configv(EMAIL)) }}, }) } diff --git a/core/code/inner.go b/core/code/inner.go index 4edce377..9eb5f3f9 100644 --- a/core/code/inner.go +++ b/core/code/inner.go @@ -101,6 +101,10 @@ const INNER = "inner" func init() { Index.Merge(&ice.Context{Commands: ice.Commands{ INNER: {Name: "inner path=src/@key file=main.go line=1 auto", Help: "源代码", Meta: kit.Dict(ice.DisplayLocal("")), Actions: ice.MergeActions(ice.Actions{ + ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { + m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, m.PrefixKey()) + m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, ice.SRC_MAIN_GO) + }}, mdb.PLUGIN: {Name: "plugin", Help: "插件", Hand: func(m *ice.Message, arg ...string) { if m.Cmdy(mdb.PLUGIN, arg); m.Result() == "" { m.Echo(kit.Select("{}", m.Config(kit.Keys(PLUG, arg[0])))) diff --git a/core/code/oauth.go b/core/code/oauth.go index c14c4142..d2cf5bc8 100644 --- a/core/code/oauth.go +++ b/core/code/oauth.go @@ -25,9 +25,7 @@ func init() { Index.MergeCommands(ice.Commands{ OAUTH: {Name: "oauth hash auto", Help: "授权", Actions: ice.MergeActions(ice.Actions{ ctx.CONFIG: {Name: "config client_id client_secret redirect_uri", Help: "配置", Hand: func(m *ice.Message, arg ...string) { - for _, k := range []string{CLIENT_ID, CLIENT_SECRET, REDIRECT_URI} { - m.Config(k, kit.Select(m.Config(k), m.Option(k))) - } + ctx.ConfigFromOption(m, CLIENT_ID, CLIENT_SECRET, REDIRECT_URI) }}, mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { if arg[0] == mdb.HASH { @@ -61,8 +59,8 @@ func init() { }}, }, mdb.HashAction(mdb.FIELD, "time,hash,code,access_token,scope,token_type")), Hand: func(m *ice.Message, arg ...string) { if mdb.HashSelect(m, arg...).PushAction("user", "public", ACCESS_TOKEN, mdb.REMOVE); len(arg) == 0 { - m.Action(mdb.CREATE) m.Echo(kit.MergeURL2(LOGIN_OAUTH, "authorize", m.ConfigSimple(REDIRECT_URI, CLIENT_ID), SCOPE, "read:user read:public_key write:public_key repo")) + m.Action(mdb.CREATE) } else if len(arg) == 1 { m.Option(web.SPIDE_HEADER, web.Accept, web.ContentJSON, web.Authorization, "token "+m.Append(ACCESS_TOKEN)) m.SetAppend() diff --git a/core/wiki/word.go b/core/wiki/word.go index e055dce7..7221e6aa 100644 --- a/core/wiki/word.go +++ b/core/wiki/word.go @@ -44,11 +44,11 @@ func init() { WORD: {Name: "word path=src/main.shy@key list play", Help: "语言文字", Actions: ice.MergeActions(ice.Actions{ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, m.PrefixKey()) - m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, "src/main.shy") + m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, ice.SRC_MAIN_SHY) }}, mdb.SEARCH: {Name: "search", Help: "搜索", Hand: func(m *ice.Message, arg ...string) { if arg[0] == mdb.FOREACH && arg[1] == "" { - m.PushSearch(mdb.TYPE, "shy", mdb.NAME, "src/main.shy", mdb.TEXT, chat.MergeCmd(m, "")) + m.PushSearch(mdb.TYPE, nfs.SHY, mdb.NAME, ice.SRC_MAIN_SHY, mdb.TEXT, chat.MergeCmd(m, "")) } m.Cmd(mdb.SELECT, m.PrefixKey(), "", mdb.HASH).Tables(func(value ice.Maps) { if arg[1] == "" { diff --git a/misc/git/server.go b/misc/git/server.go index 71c9c3c4..ddaa5bae 100644 --- a/misc/git/server.go +++ b/misc/git/server.go @@ -46,12 +46,14 @@ func _server_rewrite(m *ice.Message, p string, r *http.Request) { if ua := r.Header.Get(web.UserAgent); strings.HasPrefix(ua, "curl") || strings.HasPrefix(ua, "Wget") { r.URL.Path = strings.Replace(r.URL.Path, "/x/", "/chat/pod/", 1) m.Info("rewrite %v -> %v", p, r.URL.Path) // 下载镜像 - } else if strings.HasPrefix(ua, "git") || strings.HasPrefix(ua, "Go") { - r.URL.Path = strings.Replace(r.URL.Path, "/x/", "/code/git/repos/", 1) - m.Info("rewrite %v -> %v", p, r.URL.Path) // 下载源码 - } else { + + } else if strings.HasPrefix(ua, "Mozilla") { r.URL.Path = strings.Replace(r.URL.Path, "/x/", "/chat/pod/", 1) m.Info("rewrite %v -> %v", p, r.URL.Path) // 访问服务 + + } else { + r.URL.Path = strings.Replace(r.URL.Path, "/x/", "/code/git/repos/", 1) + m.Info("rewrite %v -> %v", p, r.URL.Path) // 下载源码 } } func _server_login(m *ice.Message) error { diff --git a/misc/lark/app.go b/misc/lark/app.go index 85db2af3..34561686 100644 --- a/misc/lark/app.go +++ b/misc/lark/app.go @@ -31,7 +31,7 @@ func init() { m.Cmd(web.SPIDE, mdb.CREATE, LARK, m.Config(tcp.SERVER)) }}, LOGIN: {Name: "login appid appmm duty", Help: "登录", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, arg) + m.Cmdy(mdb.INSERT, m.PrefixKey(), "", mdb.HASH, m.OptionSimple(APPID, APPMM, DUTY)) }}, TOKEN: {Name: "token appid", Help: "令牌", Hand: func(m *ice.Message, arg ...string) { msg := m.Cmd(APP, m.Option(APPID))