1
0
forked from x/icebergs
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-09-03 07:35:53 +08:00
parent 53c5a80da6
commit 329f963a38
5 changed files with 79 additions and 44 deletions

View File

@ -61,7 +61,7 @@ func (f *Frame) Start(m *ice.Message, arg ...string) {
view := mdb.Confm(m, VIEW, m.Conf(SHOW, kit.Keys(l.l, VIEW))) view := mdb.Confm(m, VIEW, m.Conf(SHOW, kit.Keys(l.l, VIEW)))
kit.If(ice.Info.Colors || l.c, func() { bio.WriteString(kit.Format(view[PREFIX])) }) kit.If(ice.Info.Colors || l.c, func() { bio.WriteString(kit.Format(view[PREFIX])) })
defer kit.If(ice.Info.Colors || l.c, func() { bio.WriteString(kit.Format(view[SUFFIX])) }) defer kit.If(ice.Info.Colors || l.c, func() { bio.WriteString(kit.Format(view[SUFFIX])) })
fmt.Fprint(bio, l.l, lex.SP, l.s) fmt.Fprint(bio, l.l, lex.SP, l.s+kit.Format("what %v", len(f.p)))
}) })
} }
} }

View File

@ -1,6 +1,7 @@
package mdb package mdb
import ( import (
"time"
"sync" "sync"
ice "shylinux.com/x/icebergs" ice "shylinux.com/x/icebergs"
@ -18,8 +19,44 @@ func getLock(m *ice.Message, arg ...string) *task.Lock {
kit.If(!ok, func() { l = &task.Lock{}; _locks[key] = l }) kit.If(!ok, func() { l = &task.Lock{}; _locks[key] = l })
return l return l
} }
func Lock(m *ice.Message, arg ...string) func() { return getLock(m, arg...).Lock() } func Lock(m *ice.Message, arg ...string) func() {
func RLock(m *ice.Message, arg ...string) func() { return getLock(m, arg...).RLock() } return getLock(m, arg...).Lock()
key := kit.Select(m.PrefixKey(), kit.Keys(arg))
m.Info("what %v", key)
cb := getLock(m, arg...).Lock()
m.Info("what %v", key)
go func() {
time.Sleep(30*time.Second)
if cb == nil {
return
}
cb()
m.Warn("lock time out %v %v", key, m.FormatStack(1, 100))
}()
return func() {
cb()
cb = nil
}
}
func RLock(m *ice.Message, arg ...string) func() {
return getLock(m, arg...).RLock()
key := kit.Select(m.PrefixKey(), kit.Keys(arg))
m.Info("what %v", key)
cb := getLock(m, arg...).RLock()
m.Info("what %v", key)
go func() {
time.Sleep(30*time.Second)
if cb == nil {
return
}
cb()
m.Warn("lock time out %v %v", key, m.FormatStack(1, 100))
}()
return func() {
cb()
cb = nil
}
}
func ConfigSimple(m *ice.Message, key ...string) (res []string) { func ConfigSimple(m *ice.Message, key ...string) (res []string) {
for _, key := range key { for _, key := range key {

View File

@ -226,26 +226,22 @@ var Index = &ice.Context{Name: MDB, Help: "数据模块", Commands: ice.Commands
EXPORT: {Name: "export index auto", Help: "导出数据", Actions: ice.MergeActions(ice.Actions{ EXPORT: {Name: "export index auto", Help: "导出数据", Actions: ice.MergeActions(ice.Actions{
IMPORT: {Hand: func(m *ice.Message, arg ...string) { IMPORT: {Hand: func(m *ice.Message, arg ...string) {
HashSelect(m).Table(func(value ice.Maps) { HashSelect(m).Table(func(value ice.Maps) {
if value[STATUS] != DISABLE { if value[ENABLE] != ice.FALSE {
m.Cmd(IMPORT, value[INDEX], "", value[TYPE]) m.Cmd(IMPORT, value[INDEX], "", value[TYPE])
} }
}) })
}}, }},
EXPORT: {Hand: func(m *ice.Message, arg ...string) { EXPORT: {Hand: func(m *ice.Message, arg ...string) {
HashSelect(m).Table(func(value ice.Maps) { HashSelect(m).Table(func(value ice.Maps) {
if value[STATUS] != DISABLE { if value[ENABLE] != ice.FALSE {
m.Cmd(EXPORT, value[INDEX], "", value[TYPE]) m.Cmd(EXPORT, value[INDEX], "", value[TYPE])
} }
}) })
}}, }},
ENABLE: {Hand: func(m *ice.Message, arg ...string) { HashModify(m, STATUS, ENABLE) }}, }, ExportHashAction(SHORT, INDEX, FIELD, "time,index,type,enable")), Hand: func(m *ice.Message, arg ...string) {
DISABLE: {Hand: func(m *ice.Message, arg ...string) { HashModify(m, STATUS, DISABLE) }},
}, ExportHashAction(SHORT, INDEX, FIELD, "time,index,type,status")), Hand: func(m *ice.Message, arg ...string) {
if len(arg) < 2 { if len(arg) < 2 {
HashSelect(m, arg...).RewriteAppend(func(value, key string, index int) string { HashSelect(m, arg...)
kit.If(key == STATUS, func() { value = kit.Select(ENABLE, value) }) m.PushAction(REMOVE)
return value
}).PushAction()
if len(arg) == 1 { if len(arg) == 1 {
m.Cmdy("nfs.cat", "usr/local/export/"+arg[0]+"/hash.json") m.Cmdy("nfs.cat", "usr/local/export/"+arg[0]+"/hash.json")
} }

View File

@ -205,36 +205,39 @@ const (
UPGRADE = "upgrade" UPGRADE = "upgrade"
INSTALL = "install" INSTALL = "install"
CODE_GIT_SERVICE = "web.code.git.service" CODE_MYSQL_CLIENT = "web.code.mysql.client"
CODE_GIT_SEARCH = "web.code.git.search" CODE_GIT_SERVICE = "web.code.git.service"
CODE_GIT_STATUS = "web.code.git.status" CODE_GIT_SEARCH = "web.code.git.search"
CODE_GIT_REPOS = "web.code.git.repos" CODE_GIT_STATUS = "web.code.git.status"
CODE_AUTOGEN = "web.code.autogen" CODE_GIT_REPOS = "web.code.git.repos"
CODE_COMPILE = "web.code.compile" CODE_AUTOGEN = "web.code.autogen"
CODE_PUBLISH = "web.code.publish" CODE_COMPILE = "web.code.compile"
CODE_UPGRADE = "web.code.upgrade" CODE_PUBLISH = "web.code.publish"
CODE_VIMER = "web.code.vimer" CODE_UPGRADE = "web.code.upgrade"
CODE_INNER = "web.code.inner" CODE_VIMER = "web.code.vimer"
CODE_XTERM = "web.code.xterm" CODE_INNER = "web.code.inner"
CODE_MOD = "web.code.mod" CODE_XTERM = "web.code.xterm"
WIKI_FEEL = "web.wiki.feel" CODE_MOD = "web.code.mod"
WIKI_DRAW = "web.wiki.draw" WIKI_FEEL = "web.wiki.feel"
WIKI_WORD = "web.wiki.word" WIKI_DRAW = "web.wiki.draw"
WIKI_PORTAL = "web.wiki.portal" WIKI_WORD = "web.wiki.word"
CHAT_OAUTH_CLIENT = "web.chat.oauth.client" WIKI_PORTAL = "web.wiki.portal"
CHAT_WX_ACCESS = "web.chat.wx.access" CHAT_OAUTH_CLIENT = "web.chat.oauth.client"
CHAT_WX_AGENT = "web.chat.wx.agent" CHAT_WX_ACCESS = "web.chat.wx.access"
CHAT_WX_TEMPLATE = "web.chat.wx.template" CHAT_WX_AGENT = "web.chat.wx.agent"
CHAT_WX_OCR = "web.chat.wx.ocr" CHAT_WX_TEMPLATE = "web.chat.wx.template"
CHAT_MESSAGE = "web.chat.message" CHAT_WX_OCR = "web.chat.wx.ocr"
CHAT_HEADER = "web.chat.header" CHAT_MESSAGE = "web.chat.message"
CHAT_IFRAME = "web.chat.iframe" CHAT_HEADER = "web.chat.header"
CHAT_FAVOR = "web.chat.favor" CHAT_IFRAME = "web.chat.iframe"
CHAT_FLOWS = "web.chat.flows" CHAT_FAVOR = "web.chat.favor"
CHAT_GRANT = "web.chat.grant" CHAT_FLOWS = "web.chat.flows"
CHAT_POD = "web.chat.pod" CHAT_GRANT = "web.chat.grant"
CHAT_CMD = "web.chat.cmd" CHAT_POD = "web.chat.pod"
TEAM_PLAN = "web.team.plan" CHAT_CMD = "web.chat.cmd"
TEAM_PLAN = "web.team.plan"
TEAM_GONGANXITONG_USER = "web.team.gonganxitong.user"
TEAM_RENZHENGSHOUQUAN_AUTH = "web.team.renzhengshouquan.auth"
) )
func MessageInsertJSON(m *ice.Message, zone, name, text string, arg ...string) { func MessageInsertJSON(m *ice.Message, zone, name, text string, arg ...string) {

View File

@ -415,9 +415,8 @@ func init() {
}}, }},
}) })
nfs.TemplateText = func(m *ice.Message, p string) string { nfs.TemplateText = func(m *ice.Message, p string) string {
// if p := kit.Select(nfs.TemplatePath(m, path.Base(p)), m.Option("_template")); kit.HasPrefix(p, nfs.P, nfs.REQUIRE, ice.HTTP) {
if p := kit.Select(nfs.TemplatePath(m, p), m.Option("_template")); kit.HasPrefix(p, nfs.P, nfs.REQUIRE, ice.HTTP) { if p := kit.Select(nfs.TemplatePath(m, p), m.Option("_template")); kit.HasPrefix(p, nfs.P, nfs.REQUIRE, ice.HTTP) {
return m.Cmdx(SPIDE, ice.OPS, SPIDE_RAW, http.MethodGet, p) return kit.Format(mdb.Cache(ice.Pulse, p, func() ice.Any { return m.Cmdx(SPIDE, ice.OPS, SPIDE_RAW, http.MethodGet, p) }))
} else if p == "" { } else if p == "" {
return "" return ""
} else { } else {