forked from x/icebergs
add some
This commit is contained in:
parent
a3328f8e83
commit
25016141bb
@ -19,9 +19,9 @@ func init() {
|
|||||||
DREAM_ACTION: {Hand: func(m *ice.Message, arg ...string) {
|
DREAM_ACTION: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
if kit.HasPrefixList(arg, ctx.ACTION, ADMIN) && len(arg) == 2 {
|
if kit.HasPrefixList(arg, ctx.ACTION, ADMIN) && len(arg) == 2 {
|
||||||
if m.Option(mdb.TYPE) == MASTER {
|
if m.Option(mdb.TYPE) == MASTER {
|
||||||
m.ProcessOpen(SpideOrigin(m, m.Option(mdb.NAME)) + C(m.PrefixKey()))
|
// m.ProcessOpen(SpideOrigin(m, m.Option(mdb.NAME)) + C(m.PrefixKey()))
|
||||||
// ctx.ProcessField(m, CHAT_IFRAME, SpideOrigin(m, m.Option(mdb.NAME))+C(m.PrefixKey()), arg...)
|
ctx.ProcessField(m, CHAT_IFRAME, SpideOrigin(m, m.Option(mdb.NAME))+C(m.PrefixKey()), arg...)
|
||||||
// m.ProcessField(ctx.ACTION, ctx.RUN, CHAT_IFRAME)
|
m.ProcessField(ctx.ACTION, ctx.RUN, CHAT_IFRAME)
|
||||||
} else {
|
} else {
|
||||||
ctx.ProcessField(m, CHAT_IFRAME, m.MergePodCmd(m.Option(mdb.NAME), ""), arg...)
|
ctx.ProcessField(m, CHAT_IFRAME, m.MergePodCmd(m.Option(mdb.NAME), ""), arg...)
|
||||||
m.ProcessField(ctx.ACTION, ctx.RUN, CHAT_IFRAME)
|
m.ProcessField(ctx.ACTION, ctx.RUN, CHAT_IFRAME)
|
||||||
|
@ -23,7 +23,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func _dream_list(m *ice.Message) *ice.Message {
|
func _dream_list(m *ice.Message) *ice.Message {
|
||||||
stat := map[string]int{}
|
|
||||||
list := m.CmdMap(SPACE, mdb.NAME)
|
list := m.CmdMap(SPACE, mdb.NAME)
|
||||||
mdb.HashSelect(m).Table(func(value ice.Maps) {
|
mdb.HashSelect(m).Table(func(value ice.Maps) {
|
||||||
if space, ok := list[value[mdb.NAME]]; ok {
|
if space, ok := list[value[mdb.NAME]]; ok {
|
||||||
@ -31,22 +30,19 @@ func _dream_list(m *ice.Message) *ice.Message {
|
|||||||
m.Push(mdb.TYPE, space[mdb.TYPE]).Push(cli.STATUS, cli.START)
|
m.Push(mdb.TYPE, space[mdb.TYPE]).Push(cli.STATUS, cli.START)
|
||||||
m.Push(nfs.VERSION, space[nfs.VERSION]).Push(mdb.TEXT, msg.Append(mdb.TEXT))
|
m.Push(nfs.VERSION, space[nfs.VERSION]).Push(mdb.TEXT, msg.Append(mdb.TEXT))
|
||||||
m.PushButton(strings.Join(msg.Appendv(ctx.ACTION), ""))
|
m.PushButton(strings.Join(msg.Appendv(ctx.ACTION), ""))
|
||||||
stat[cli.START]++
|
|
||||||
} else {
|
} else {
|
||||||
if m.Push(mdb.TYPE, WORKER); nfs.Exists(m, path.Join(ice.USR_LOCAL_WORK, value[mdb.NAME])) {
|
if m.Push(mdb.TYPE, WORKER); nfs.Exists(m, path.Join(ice.USR_LOCAL_WORK, value[mdb.NAME])) {
|
||||||
m.Push(cli.STATUS, cli.STOP)
|
m.Push(cli.STATUS, cli.STOP)
|
||||||
m.Push(nfs.VERSION, "").Push(mdb.TEXT, "")
|
m.Push(nfs.VERSION, "").Push(mdb.TEXT, "")
|
||||||
m.PushButton(cli.START, nfs.TRASH)
|
m.PushButton(cli.START, nfs.TRASH)
|
||||||
stat[cli.STOP]++
|
|
||||||
} else {
|
} else {
|
||||||
m.Push(cli.STATUS, cli.BEGIN)
|
m.Push(cli.STATUS, cli.BEGIN)
|
||||||
m.Push(nfs.VERSION, "").Push(mdb.TEXT, "")
|
m.Push(nfs.VERSION, "").Push(mdb.TEXT, "")
|
||||||
m.PushButton(cli.START, mdb.REMOVE)
|
m.PushButton(cli.START, mdb.REMOVE)
|
||||||
stat[cli.BEGIN]++
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return m.Sort("type,status,name", []string{MASTER, SERVER, WORKER}, []string{cli.START, cli.STOP, cli.BEGIN}, ice.STR_R).StatusTimeCount(stat)
|
return m
|
||||||
}
|
}
|
||||||
func _dream_start(m *ice.Message, name string) {
|
func _dream_start(m *ice.Message, name string) {
|
||||||
if m.Warn(name == "", ice.ErrNotValid, mdb.NAME) {
|
if m.Warn(name == "", ice.ErrNotValid, mdb.NAME) {
|
||||||
@ -142,7 +138,11 @@ const DREAM = "dream"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
DREAM: {Name: "dream refresh", Help: "梦想家", Icon: "Launchpad.png", Role: aaa.VOID, Actions: ice.MergeActions(ice.Actions{
|
DREAM: {Name: "dream refresh", Help: "梦想家", Icon: "Launchpad.png", Role: aaa.VOID, Meta: kit.Dict(
|
||||||
|
ice.CTX_TRANS, kit.Dict(html.INPUT, kit.Dict(
|
||||||
|
WORKER, "空间", SERVER, "机器", MASTER, "服务",
|
||||||
|
)),
|
||||||
|
), Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m = m.Spawn()
|
m = m.Spawn()
|
||||||
m.GoSleep("10s", func() {
|
m.GoSleep("10s", func() {
|
||||||
@ -375,7 +375,10 @@ func init() {
|
|||||||
m.PushButton("grant")
|
m.PushButton("grant")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
m.Sort("type,status,name", []string{aaa.LOGIN, WORKER, SERVER, MASTER}, []string{cli.START, cli.STOP, cli.BEGIN}, ice.STR_R)
|
stat := map[string]int{}
|
||||||
|
m.Table(func(value ice.Maps) { stat[value[mdb.TYPE]]++; stat[value[mdb.STATUS]]++ })
|
||||||
|
kit.If(stat[cli.START] == stat[WORKER], func() { delete(stat, cli.START) })
|
||||||
|
m.Sort("type,status,name", []string{aaa.LOGIN, WORKER, SERVER, MASTER}, []string{cli.START, cli.STOP, cli.BEGIN}, ice.STR_R).StatusTimeCount(stat)
|
||||||
} else if arg[0] == ctx.ACTION {
|
} else if arg[0] == ctx.ACTION {
|
||||||
gdb.Event(m, DREAM_ACTION, arg)
|
gdb.Event(m, DREAM_ACTION, arg)
|
||||||
} else {
|
} else {
|
||||||
@ -396,8 +399,10 @@ func DreamProcess(m *ice.Message, args ice.Any, arg ...string) {
|
|||||||
if kit.HasPrefixList(arg, ctx.RUN) {
|
if kit.HasPrefixList(arg, ctx.RUN) {
|
||||||
ctx.ProcessField(m, m.PrefixKey(), args, kit.Slice(arg, 1)...)
|
ctx.ProcessField(m, m.PrefixKey(), args, kit.Slice(arg, 1)...)
|
||||||
} else if kit.HasPrefixList(arg, ctx.ACTION, m.PrefixKey()) || kit.HasPrefixList(arg, ctx.ACTION, m.CommandKey()) {
|
} else if kit.HasPrefixList(arg, ctx.ACTION, m.PrefixKey()) || kit.HasPrefixList(arg, ctx.ACTION, m.CommandKey()) {
|
||||||
if m.Option(mdb.TYPE) == MASTER {
|
if m.Option(mdb.TYPE) == MASTER && (kit.IsIn(ctx.ShortCmd(m.PrefixKey()), PORTAL, DESKTOP)) {
|
||||||
m.ProcessOpen(SpideOrigin(m, m.Option(mdb.NAME)) + C(m.PrefixKey()))
|
// m.ProcessOpen(SpideOrigin(m, m.Option(mdb.NAME)) + C(m.PrefixKey()))
|
||||||
|
ctx.ProcessField(m, CHAT_IFRAME, SpideOrigin(m, m.Option(mdb.NAME))+C(m.PrefixKey()), arg...)
|
||||||
|
m.ProcessField(ctx.ACTION, ctx.RUN, CHAT_IFRAME)
|
||||||
} else if arg = kit.Slice(arg, 2); kit.HasPrefixList(arg, DREAM) {
|
} else if arg = kit.Slice(arg, 2); kit.HasPrefixList(arg, DREAM) {
|
||||||
m.Cmdy(SPACE, m.Option(ice.MSG_USERPOD, arg[1]), m.PrefixKey(), ctx.ACTION, DREAM_ACTION, ctx.RUN, arg[2:])
|
m.Cmdy(SPACE, m.Option(ice.MSG_USERPOD, arg[1]), m.PrefixKey(), ctx.ACTION, DREAM_ACTION, ctx.RUN, arg[2:])
|
||||||
} else if dream := m.Option(mdb.NAME); dream != "" {
|
} else if dream := m.Option(mdb.NAME); dream != "" {
|
||||||
|
@ -81,6 +81,7 @@ func _space_fork(m *ice.Message) {
|
|||||||
} else {
|
} else {
|
||||||
name, text = kit.Hashs(name), kit.Select(addr, m.Option(mdb.NAME), m.Option(mdb.TEXT))
|
name, text = kit.Hashs(name), kit.Select(addr, m.Option(mdb.NAME), m.Option(mdb.TEXT))
|
||||||
}
|
}
|
||||||
|
safe := false
|
||||||
if m.Option(ice.MSG_USERNAME, ""); kit.IsIn(m.Option(mdb.TYPE), WORKER, PORTAL) {
|
if m.Option(ice.MSG_USERNAME, ""); kit.IsIn(m.Option(mdb.TYPE), WORKER, PORTAL) {
|
||||||
if tcp.IsLocalHost(m, m.Option(ice.MSG_USERIP)) {
|
if tcp.IsLocalHost(m, m.Option(ice.MSG_USERIP)) {
|
||||||
aaa.SessAuth(m, kit.Dict(m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME, ice.Info.Username)).AppendSimple()))
|
aaa.SessAuth(m, kit.Dict(m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME, ice.Info.Username)).AppendSimple()))
|
||||||
@ -89,6 +90,7 @@ func _space_fork(m *ice.Message) {
|
|||||||
if msg := m.Cmd(TOKEN, m.Option(TOKEN)); msg.Append(mdb.TIME) > m.Time() && kit.IsIn(msg.Append(mdb.TYPE), SERVER, SPIDE) {
|
if msg := m.Cmd(TOKEN, m.Option(TOKEN)); msg.Append(mdb.TIME) > m.Time() && kit.IsIn(msg.Append(mdb.TYPE), SERVER, SPIDE) {
|
||||||
aaa.SessAuth(m, kit.Dict(m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME, msg.Append(mdb.NAME))).AppendSimple()))
|
aaa.SessAuth(m, kit.Dict(m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME, msg.Append(mdb.NAME))).AppendSimple()))
|
||||||
name = SpaceName(kit.Select(name, msg.Append(mdb.TEXT)))
|
name = SpaceName(kit.Select(name, msg.Append(mdb.TEXT)))
|
||||||
|
safe = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
args := kit.Simple(mdb.TYPE, m.Option(mdb.TYPE), mdb.NAME, name, mdb.TEXT, text, m.OptionSimple(nfs.MODULE, nfs.VERSION, cli.DAEMON))
|
args := kit.Simple(mdb.TYPE, m.Option(mdb.TYPE), mdb.NAME, name, mdb.TEXT, text, m.OptionSimple(nfs.MODULE, nfs.VERSION, cli.DAEMON))
|
||||||
@ -97,7 +99,6 @@ func _space_fork(m *ice.Message) {
|
|||||||
args = _space_agent(m, args...)
|
args = _space_agent(m, args...)
|
||||||
if c, e := websocket.Upgrade(m.W, m.R); !m.Warn(e) {
|
if c, e := websocket.Upgrade(m.W, m.R); !m.Warn(e) {
|
||||||
gdb.Go(m, func() {
|
gdb.Go(m, func() {
|
||||||
safe := false
|
|
||||||
defer mdb.HashCreateDeferRemove(m, args, kit.Dict(mdb.TARGET, c))()
|
defer mdb.HashCreateDeferRemove(m, args, kit.Dict(mdb.TARGET, c))()
|
||||||
switch m.Option(mdb.TYPE) {
|
switch m.Option(mdb.TYPE) {
|
||||||
case LOGIN:
|
case LOGIN:
|
||||||
|
@ -15,11 +15,7 @@ const TOKEN = "token"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
TOKEN: {Help: "令牌桶", Actions: mdb.HashAction(mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,type,name,text", mdb.EXPIRE, mdb.MONTH), Hand: func(m *ice.Message, arg ...string) {
|
TOKEN: {Help: "令牌桶", Actions: mdb.HashAction(mdb.SHORT, mdb.UNIQ, mdb.EXPIRE, mdb.MONTH)},
|
||||||
if mdb.HashSelect(m, arg...); len(arg) > 0 {
|
|
||||||
m.EchoScript(kit.Format("ish_miss_serve_log dev %s token %s", UserHost(m), arg[0]))
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -439,9 +439,9 @@ func init() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
INIT: {Name: "init origin*", Help: "初始化", Hand: func(m *ice.Message, arg ...string) {
|
INIT: {Name: "init remote*", Help: "初始化", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.OptionDefault(nfs.PATH, kit.Path(""))
|
m.OptionDefault(nfs.PATH, kit.Path(""))
|
||||||
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), ".git/config"), kit.Format(nfs.Template(m, CONFIG), m.Option(ORIGIN)))
|
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), ".git/config"), kit.Format(nfs.Template(m, CONFIG), m.Option(REMOTE)))
|
||||||
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), _GITIGNORE), nfs.Template(m, IGNORE))
|
m.Cmd(nfs.DEFS, path.Join(m.Option(nfs.PATH), _GITIGNORE), nfs.Template(m, IGNORE))
|
||||||
git.PlainInit(m.Option(nfs.PATH), false)
|
git.PlainInit(m.Option(nfs.PATH), false)
|
||||||
_repos_insert(m, m.Option(nfs.PATH))
|
_repos_insert(m, m.Option(nfs.PATH))
|
||||||
@ -509,8 +509,8 @@ func init() {
|
|||||||
mdb.HashRemove(m, m.Option(REPOS))
|
mdb.HashRemove(m, m.Option(REPOS))
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
CLONE: {Name: "clone origin* name path", Help: "克隆", Icon: "bi bi-copy", Hand: func(m *ice.Message, arg ...string) {
|
CLONE: {Name: "clone remote* name path", Help: "克隆", Icon: "bi bi-copy", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.OptionDefault(mdb.NAME, path.Base(m.Option(ORIGIN)))
|
m.OptionDefault(mdb.NAME, path.Base(m.Option(REMOTE)))
|
||||||
m.OptionDefault(nfs.PATH, path.Join(nfs.USR, m.Option(mdb.NAME))+nfs.PS)
|
m.OptionDefault(nfs.PATH, path.Join(nfs.USR, m.Option(mdb.NAME))+nfs.PS)
|
||||||
defer m.Cmdy(nfs.DIR, m.Option(nfs.PATH))
|
defer m.Cmdy(nfs.DIR, m.Option(nfs.PATH))
|
||||||
if nfs.Exists(m, path.Join(m.Option(nfs.PATH), _GIT)) {
|
if nfs.Exists(m, path.Join(m.Option(nfs.PATH), _GIT)) {
|
||||||
@ -518,7 +518,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
defer web.ToastProcess(m)()
|
defer web.ToastProcess(m)()
|
||||||
for _, dev := range []string{"dev_ip", ice.DEV, ice.SHY} {
|
for _, dev := range []string{"dev_ip", ice.DEV, ice.SHY} {
|
||||||
p := m.Option(ORIGIN)
|
p := m.Option(REMOTE)
|
||||||
kit.If(!kit.HasPrefix(p, nfs.PS, web.HTTP), func() { p = m.Cmdv(web.SPIDE, dev, web.CLIENT_ORIGIN) + web.X(p) })
|
kit.If(!kit.HasPrefix(p, nfs.PS, web.HTTP), func() { p = m.Cmdv(web.SPIDE, dev, web.CLIENT_ORIGIN) + web.X(p) })
|
||||||
m.Info("clone %s", p)
|
m.Info("clone %s", p)
|
||||||
if _, err := git.PlainClone(m.Option(nfs.PATH), false, &git.CloneOptions{URL: p, Auth: _repos_auth(m, p)}); !m.Warn(err) {
|
if _, err := git.PlainClone(m.Option(nfs.PATH), false, &git.CloneOptions{URL: p, Auth: _repos_auth(m, p)}); !m.Warn(err) {
|
||||||
@ -620,7 +620,7 @@ func init() {
|
|||||||
kit.If(m.Option(REPOS), func(p string) {
|
kit.If(m.Option(REPOS), func(p string) {
|
||||||
p = strings.Split(p, mdb.QS)[0]
|
p = strings.Split(p, mdb.QS)[0]
|
||||||
kit.If(!strings.Contains(p, "://"), func() { p = kit.MergeURL2(web.UserHost(m), web.X(p)) })
|
kit.If(!strings.Contains(p, "://"), func() { p = kit.MergeURL2(web.UserHost(m), web.X(p)) })
|
||||||
m.Cmd("", CLONE, ORIGIN, p, nfs.PATH, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME)), ice.Maps{cli.CMD_DIR: ""})
|
m.Cmd("", CLONE, REMOTE, p, nfs.PATH, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME)), ice.Maps{cli.CMD_DIR: ""})
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
web.DREAM_TRASH: {Hand: func(m *ice.Message, arg ...string) { m.Cmd("", mdb.REMOVE, kit.Dict(REPOS, m.Option(mdb.NAME))) }},
|
web.DREAM_TRASH: {Hand: func(m *ice.Message, arg ...string) { m.Cmd("", mdb.REMOVE, kit.Dict(REPOS, m.Option(mdb.NAME))) }},
|
||||||
@ -638,8 +638,8 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
web.SERVE_START: {Hand: func(m *ice.Message, arg ...string) {
|
web.SERVE_START: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Go(func() {
|
m.Go(func() {
|
||||||
m.Cmd("", CLONE, ORIGIN, "node_modules", mdb.NAME, "", nfs.PATH, "")
|
m.Cmd("", CLONE, REMOTE, "node_modules", mdb.NAME, "", nfs.PATH, "")
|
||||||
m.Cmd("", CLONE, ORIGIN, "icons", mdb.NAME, "", nfs.PATH, "")
|
m.Cmd("", CLONE, REMOTE, "icons", mdb.NAME, "", nfs.PATH, "")
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
web.STATS_TABLES: {Hand: func(m *ice.Message, _ ...string) {
|
web.STATS_TABLES: {Hand: func(m *ice.Message, _ ...string) {
|
||||||
|
@ -78,7 +78,7 @@ func (m *Message) Action(arg ...Any) *Message {
|
|||||||
}
|
}
|
||||||
func (m *Message) Status(arg ...Any) *Message {
|
func (m *Message) Status(arg ...Any) *Message {
|
||||||
list := kit.List()
|
list := kit.List()
|
||||||
kit.For(kit.Simple(arg), func(k, v string) { list = append(list, kit.Dict(NAME, k, VALUE, v)) })
|
kit.For(kit.Simple(arg), func(k, v string) { kit.If(k, func() { list = append(list, kit.Dict(NAME, k, VALUE, v)) }) })
|
||||||
return m.Options(MSG_STATUS, kit.Format(list))
|
return m.Options(MSG_STATUS, kit.Format(list))
|
||||||
}
|
}
|
||||||
func (m *Message) StatusTime(arg ...Any) *Message {
|
func (m *Message) StatusTime(arg ...Any) *Message {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user