From 970ab800d5183546db1dafc84ad319c0ac47369f Mon Sep 17 00:00:00 2001 From: harveyshao Date: Sun, 20 Jun 2021 11:55:53 +0800 Subject: [PATCH] opt cli --- base/aaa/role.go | 1 - base/aaa/sess.go | 7 ++-- base/aaa/totp.go | 2 +- base/cli/daemon.go | 9 +++- base/cli/qrcode.go | 10 ++--- base/gdb/gdb.go | 25 ++--------- base/gdb/routine.go | 5 ++- base/gdb/timer.go | 6 ++- base/lex/lex.go | 22 ++++++---- base/lex/matrix.go | 99 ++++++++++++++++++++------------------------ conf.go | 1 + core/code/install.go | 11 +++-- core/team/plan.go | 10 +++-- core/team/task.go | 9 ++-- misc.go | 14 ++++--- misc/bash/bash.go | 10 ++--- misc/bash/zsh.go | 10 ++--- misc/git/git.go | 9 ++-- misc/tmux/tmux.go | 9 ++-- misc/vim/vim.go | 10 ++--- 20 files changed, 135 insertions(+), 144 deletions(-) diff --git a/base/aaa/role.go b/base/aaa/role.go index 57aeba20..f694389d 100644 --- a/base/aaa/role.go +++ b/base/aaa/role.go @@ -94,7 +94,6 @@ const ( // 角色操作 WHITE = "white" RIGHT = "right" ) - const ROLE = "role" func init() { diff --git a/base/aaa/sess.go b/base/aaa/sess.go index 37462a8d..369bf37b 100644 --- a/base/aaa/sess.go +++ b/base/aaa/sess.go @@ -23,9 +23,6 @@ func _sess_check(m *ice.Message, sessid string) { }) } func _sess_create(m *ice.Message, username string) string { - if username == "" { - return "" - } if m.Richs(USER, nil, username, nil) == nil { _user_create(m, username, kit.Hashs()) } @@ -44,6 +41,9 @@ func SessCheck(m *ice.Message, sessid string) { _sess_check(m, sessid) } func SessCreate(m *ice.Message, username string) string { + if username == "" { + return "" + } return m.Option(ice.MSG_SESSID, _sess_create(m, username)) } func SessIsCli(m *ice.Message) bool { @@ -57,7 +57,6 @@ const ( IP = "ip" UA = "ua" ) - const ( SESS_CREATE = "sess.create" ) diff --git a/base/aaa/totp.go b/base/aaa/totp.go index 8c7c9d1c..35aa334a 100644 --- a/base/aaa/totp.go +++ b/base/aaa/totp.go @@ -69,7 +69,7 @@ func init() { m.Cmd(mdb.INSERT, TOTP, "", mdb.HASH, kit.MDB_NAME, m.Option(kit.MDB_NAME), SECRET, m.Option(SECRET), PERIOD, m.Option(PERIOD), NUMBER, m.Option(NUMBER), ) - m.ProcessRefresh("30ms") + m.ProcessRefresh30ms() }}, mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(mdb.DELETE, TOTP, "", mdb.HASH, kit.MDB_NAME, m.Option(kit.MDB_NAME)) diff --git a/base/cli/daemon.go b/base/cli/daemon.go index 4ee1ebff..6eb6365e 100644 --- a/base/cli/daemon.go +++ b/base/cli/daemon.go @@ -66,6 +66,7 @@ func _daemon_show(m *ice.Message, cmd *exec.Cmd, out, err string) { } const ( + PID = "pid" DIR = "dir" ENV = "env" CMD = "cmd" @@ -75,9 +76,15 @@ const ( ERR = "err" ) const ( - ERROR = "error" + ERROR = "error" + BUILD = "build" + SPAWN = "spawn" + BENCH = "bench" + PPROF = "pprof" + START = "start" RESTART = "restart" + RELOAD = "reload" STOP = "stop" AUTO_RESTART = "auto_restart" diff --git a/base/cli/qrcode.go b/base/cli/qrcode.go index 4788bee6..a18d3152 100644 --- a/base/cli/qrcode.go +++ b/base/cli/qrcode.go @@ -94,15 +94,15 @@ func _qrcode_web(m *ice.Message, text string) { } } -func Color(m *ice.Message, c string, str string) string { - wrap, color := `%s`, c +func Color(m *ice.Message, c string, str interface{}) string { + wrap, color := `%v`, c if aaa.SessIsCli(m) { - wrap, color = "\033[3%sm%s\033[0m", _trans_cli(c) + wrap, color = "\033[3%sm%v\033[0m", _trans_cli(c) } return fmt.Sprintf(wrap, color, str) } -func ColorRed(m *ice.Message, str string) string { return Color(m, RED, str) } -func ColorGreen(m *ice.Message, str string) string { return Color(m, GREEN, str) } +func ColorRed(m *ice.Message, str interface{}) string { return Color(m, RED, str) } +func ColorGreen(m *ice.Message, str interface{}) string { return Color(m, GREEN, str) } const ( FG = "fg" diff --git a/base/gdb/gdb.go b/base/gdb/gdb.go index ada7fa40..6f6b1657 100644 --- a/base/gdb/gdb.go +++ b/base/gdb/gdb.go @@ -20,7 +20,7 @@ func (f *Frame) Spawn(m *ice.Message, c *ice.Context, arg ...string) ice.Server return &Frame{} } func (f *Frame) Begin(m *ice.Message, arg ...string) ice.Server { - f.t = time.Tick(kit.Duration(m.Conf(TIMER, kit.Keym("tick")))) + f.t = time.Tick(kit.Duration(m.Conf(TIMER, kit.Keym(TICK)))) f.s = make(chan os.Signal, ice.MOD_CHAN) f.e = make(chan bool, 1) return f @@ -44,30 +44,13 @@ func (f *Frame) Close(m *ice.Message, arg ...string) bool { return true } -const ( - BUILD = "build" - SPAWN = "spawn" - START = "start" - ERROR = "error" - STOP = "stop" - - STATUS = "status" - RESTART = "restart" - RELOAD = "reload" - - BENCH = "bench" - PPROF = "pprof" - BEGIN = "begin" - END = "end" -) - const GDB = "gdb" var Index = &ice.Context{Name: GDB, Help: "事件模块", Commands: map[string]*ice.Command{ ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Cmd(nfs.SAVE, kit.Select(m.Conf(SIGNAL, kit.META_PATH), m.Conf(cli.RUNTIME, kit.Keys(cli.CONF, cli.CTX_PID))), - m.Conf(cli.RUNTIME, kit.Keys(cli.HOST, "pid"))) + m.Conf(cli.RUNTIME, kit.Keys(cli.HOST, cli.PID))) m.Cmd(SIGNAL, LISTEN, SIGNAL, "3", kit.MDB_NAME, "退出", kit.SSH_CMD, "exit 0") m.Cmd(SIGNAL, LISTEN, SIGNAL, "2", kit.MDB_NAME, "重启", kit.SSH_CMD, "exit 1") @@ -82,6 +65,4 @@ var Index = &ice.Context{Name: GDB, Help: "事件模块", }, } -func init() { - ice.Index.Register(Index, &Frame{}, ROUTINE, SIGNAL, EVENT, TIMER) -} +func init() { ice.Index.Register(Index, &Frame{}, ROUTINE, SIGNAL, EVENT, TIMER) } diff --git a/base/gdb/routine.go b/base/gdb/routine.go index e11e5f00..c9906471 100644 --- a/base/gdb/routine.go +++ b/base/gdb/routine.go @@ -4,6 +4,7 @@ import ( "path" ice "github.com/shylinux/icebergs" + "github.com/shylinux/icebergs/base/cli" "github.com/shylinux/icebergs/base/ctx" "github.com/shylinux/icebergs/base/mdb" kit "github.com/shylinux/toolkits" @@ -35,8 +36,8 @@ func init() { }}, mdb.PRUNES: {Name: "prunes", Help: "清理", Hand: func(m *ice.Message, arg ...string) { m.Option(mdb.FIELDS, "time,hash,status,fileline") - m.Cmdy(mdb.PRUNES, ROUTINE, "", mdb.HASH, kit.MDB_STATUS, ERROR) - m.Cmdy(mdb.PRUNES, ROUTINE, "", mdb.HASH, kit.MDB_STATUS, STOP) + m.Cmdy(mdb.PRUNES, ROUTINE, "", mdb.HASH, kit.MDB_STATUS, cli.ERROR) + m.Cmdy(mdb.PRUNES, ROUTINE, "", mdb.HASH, kit.MDB_STATUS, cli.STOP) }}, INNER: {Name: "inner", Help: "源码", Hand: func(m *ice.Message, arg ...string) { diff --git a/base/gdb/timer.go b/base/gdb/timer.go index d15b004f..b2985e40 100644 --- a/base/gdb/timer.go +++ b/base/gdb/timer.go @@ -4,6 +4,7 @@ import ( "time" ice "github.com/shylinux/icebergs" + "github.com/shylinux/icebergs/base/cli" "github.com/shylinux/icebergs/base/mdb" kit "github.com/shylinux/toolkits" ) @@ -16,7 +17,7 @@ func _timer_action(m *ice.Message, arg ...string) { m.Option(mdb.FIELDS, "time,hash,delay,interval,order,next,cmd") m.Richs(TIMER, "", kit.MDB_FOREACH, func(key string, value map[string]interface{}) { - if value = kit.GetMeta(value); value[kit.MDB_STATUS] == STOP { + if value = kit.GetMeta(value); value[kit.MDB_STATUS] == cli.STOP { return } @@ -38,13 +39,14 @@ const ( INTERVAL = "interval" ORDER = "order" NEXT = "next" + TICK = "tick" ) const TIMER = "timer" func init() { Index.Merge(&ice.Context{ Configs: map[string]*ice.Config{ - TIMER: {Name: TIMER, Help: "定时器", Value: kit.Data("tick", "100ms")}, + TIMER: {Name: TIMER, Help: "定时器", Value: kit.Data(TICK, "10ms")}, }, Commands: map[string]*ice.Command{ TIMER: {Name: "timer hash id auto create prunes", Help: "定时器", Action: map[string]*ice.Action{ diff --git a/base/lex/lex.go b/base/lex/lex.go index 3a9d9761..0d30f2bc 100644 --- a/base/lex/lex.go +++ b/base/lex/lex.go @@ -5,21 +5,25 @@ import ( kit "github.com/shylinux/toolkits" ) +func _lex_load(m *ice.Message) { + m.Richs(m.Prefix(MATRIX), "", kit.MDB_FOREACH, func(key string, value map[string]interface{}) { + value = kit.GetMeta(value) + + mat := NewMatrix(m, kit.Int(kit.Select("32", value[NLANG])), kit.Int(kit.Select("256", value[NCELL]))) + m.Grows(m.Prefix(MATRIX), kit.Keys(kit.MDB_HASH, key), "", "", func(index int, value map[string]interface{}) { + mat.Train(m, kit.Format(value[NPAGE]), kit.Format(value[NHASH]), kit.Format(value[kit.MDB_TEXT])) + }) + value[MATRIX] = mat + }) +} + const LEX = "lex" var Index = &ice.Context{Name: LEX, Help: "词法模块", Commands: map[string]*ice.Command{ ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) { m.Load() - m.Richs(m.Prefix(MATRIX), "", kit.MDB_FOREACH, func(key string, value map[string]interface{}) { - value = kit.GetMeta(value) - - mat := NewMatrix(m, kit.Int(kit.Select("32", value[NLANG])), kit.Int(kit.Select("256", value[NCELL]))) - m.Grows(m.Prefix(MATRIX), kit.Keys(kit.MDB_HASH, key), "", "", func(index int, value map[string]interface{}) { - mat.Train(m, kit.Format(value[NPAGE]), kit.Format(value[NHASH]), kit.Format(value[kit.MDB_TEXT])) - }) - value[MATRIX] = mat - }) + _lex_load(m) }}, ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) { m.Save() diff --git a/base/lex/matrix.go b/base/lex/matrix.go index eec94e97..e3d38fd2 100644 --- a/base/lex/matrix.go +++ b/base/lex/matrix.go @@ -1,8 +1,8 @@ package lex import ( - "sort" "strconv" + "strings" ice "github.com/shylinux/icebergs" "github.com/shylinux/icebergs/base/cli" @@ -29,7 +29,6 @@ type Matrix struct { word map[int]string trans map[byte][]byte - state map[State]*State mat []map[byte]*State } @@ -48,7 +47,6 @@ func NewMatrix(m *ice.Message, nlang, ncell int) *Matrix { mat.trans[k] = []byte(v) } - mat.state = make(map[State]*State) mat.mat = make([]map[byte]*State, nlang) return mat } @@ -77,14 +75,8 @@ func (mat *Matrix) index(m *ice.Message, hash string, h string) int { return x } - if hash == NPAGE { - which[h] = len(mat.page) + 1 - } else { - which[h] = len(mat.hash) + 1 - } - - names[which[h]] = h - m.Assert(hash != NPAGE || len(mat.page) < mat.nlang) + m.Assert(hash != NPAGE || len(which)+1 < mat.nlang) + which[h], names[len(which)+1] = len(which)+1, h return which[h] } func (mat *Matrix) Train(m *ice.Message, npage, nhash string, seed string) int { @@ -100,9 +92,9 @@ func (mat *Matrix) Train(m *ice.Message, npage, nhash string, seed string) int { cn := make([]bool, mat.ncell) cc := make([]byte, 0, mat.ncell) sn := make([]bool, len(mat.mat)) + begin := len(mat.mat) points := []*Point{} - for i := 0; i < len(seed); i++ { switch seed[i] { case '[': @@ -135,7 +127,7 @@ func (mat *Matrix) Train(m *ice.Message, npage, nhash string, seed string) int { cn[seed[i]] = true } - for c := 0; c < len(cn); c++ { + for c := 1; c < len(cn); c++ { if (set && cn[c]) || (!set && !cn[c]) { cc = append(cc, byte(c)) } @@ -168,15 +160,13 @@ func (mat *Matrix) Train(m *ice.Message, npage, nhash string, seed string) int { } add := func(s int, c byte, cb func(*State)) { - state := &State{} - if mat.mat[s][c] != nil { - *state = *mat.mat[s][c] + state := mat.mat[s][c] + if state == nil { + state = &State{} } m.Debug("GET(%d,%d): %#v", s, c, state) - cb(state) - - if state.next == 0 { + if cb(state); state.next == 0 { sn = append(sn, true) state.next = len(mat.mat) mat.mat = append(mat.mat, make(map[byte]*State)) @@ -188,6 +178,7 @@ func (mat *Matrix) Train(m *ice.Message, npage, nhash string, seed string) int { points = append(points, &Point{s, c}) m.Debug("SET(%d,%d): %#v", s, c, state) } + for _, s := range ss { for _, c := range cc { add(s, c, func(state *State) { @@ -217,39 +208,36 @@ func (mat *Matrix) Train(m *ice.Message, npage, nhash string, seed string) int { } } - sort.Ints(ss) - sort.Reverse(sort.IntSlice(ss)) - for _, s := range ss { - if s < mat.nlang || s >= len(mat.mat) { + trans := map[int]int{page: page} + for i := begin; i < len(mat.mat); i++ { + if len(mat.mat[i]) > 0 { + trans[i] = i continue } - if len(mat.mat[s]) > 0 { + + for j := i; j < len(mat.mat); j++ { + if len(mat.mat[j]) > 0 { + mat.mat[i] = mat.mat[j] + mat.mat[j] = nil + trans[j] = i + break + } + } + if len(mat.mat[i]) == 0 { + mat.mat = mat.mat[:i] break } - mat.mat = mat.mat[:s] - m.Debug("DEL: %d", len(mat.mat)) } + m.Debug("DEL: %v", trans) - for _, s := range ss { - for _, p := range points { - state := &State{} - *state = *mat.mat[p.s][p.c] - - if state.next == s { - m.Debug("GET(%d, %d): %#v", p.s, p.c, state) - if state.hash = hash; state.next >= len(mat.mat) { - state.next = 0 - } - mat.mat[p.s][p.c] = state - m.Debug("SET(%d, %d): %#v", p.s, p.c, state) - } - - if x, ok := mat.state[*state]; !ok { - mat.state[*state] = mat.mat[p.s][p.c] - } else { - mat.mat[p.s][p.c] = x - } + for _, p := range points { + p.s = trans[p.s] + state := mat.mat[p.s][p.c] + m.Debug("GET(%d, %d): %#v", p.s, p.c, state) + if state.next = trans[state.next]; state.next == 0 { + state.hash = hash } + m.Debug("SET(%d, %d): %#v", p.s, p.c, state) } m.Debug("%s %s npage: %v nhash: %v", "train", "lex", len(mat.page), len(mat.hash)) @@ -317,18 +305,23 @@ func (mat *Matrix) show(m *ice.Message) { if !show[j] { continue } - key := kit.Format("%c", j) + key, value := kit.Format("%c", j), []string{} if node := mat.mat[i][byte(j)]; node != nil { - if node.hash == 0 { - m.Push(key, kit.Select(kit.Format("%02d", node.next), cli.ColorGreen(m, kit.Select(kit.Format("%d", node.next), mat.hand[node.next])))) - } else { - m.Push(key, kit.Select(kit.Format("w%02d", node.hash), cli.ColorRed(m, mat.word[node.hash]))) + if node.star { + value = append(value, "*") + } + if node.next > 0 { + value = append(value, cli.ColorGreen(m, node.next)) + } + if node.hash > 0 { + value = append(value, cli.ColorRed(m, mat.word[node.hash])) } - } else { - m.Push(key, "") } + m.Push(key, strings.Join(value, ",")) } } + + m.Status(NLANG, mat.nlang, NCELL, mat.ncell, NPAGE, len(mat.page), NHASH, len(mat.hash)) } const ( @@ -389,7 +382,7 @@ func init() { if m.Action(mdb.CREATE); len(arg) == 0 { // 矩阵列表 m.Fields(len(arg) == 0, "time,hash,npage,nhash") m.Cmdy(mdb.SELECT, m.Prefix(MATRIX), "", mdb.HASH) - m.PushAction("show", mdb.INSERT, mdb.REMOVE) + m.PushAction(mdb.INSERT, "show", mdb.REMOVE) return } diff --git a/conf.go b/conf.go index 81c16d44..0d5275d8 100644 --- a/conf.go +++ b/conf.go @@ -110,6 +110,7 @@ const ( // MSG MSG_RIVER = "sess.river" MSG_STORM = "sess.storm" MSG_LOCAL = "sess.local" + MSG_TOAST = "sess.toast" ) const ( // RENDER RENDER_VOID = "_void" diff --git a/core/code/install.go b/core/code/install.go index 143ab7d2..153ce22e 100644 --- a/core/code/install.go +++ b/core/code/install.go @@ -8,7 +8,6 @@ import ( ice "github.com/shylinux/icebergs" "github.com/shylinux/icebergs/base/aaa" "github.com/shylinux/icebergs/base/cli" - "github.com/shylinux/icebergs/base/gdb" "github.com/shylinux/icebergs/base/mdb" "github.com/shylinux/icebergs/base/nfs" "github.com/shylinux/icebergs/base/tcp" @@ -64,7 +63,7 @@ func init() { m.Cmd(cli.SYSTEM, "tar", "xvf", name) }) }}, - gdb.BUILD: {Name: "build link", Help: "构建", Hand: func(m *ice.Message, arg ...string) { + cli.BUILD: {Name: "build link", Help: "构建", Hand: func(m *ice.Message, arg ...string) { p := m.Option(cli.CMD_DIR, path.Join(m.Conf(INSTALL, kit.META_PATH), kit.TrimExt(m.Option(kit.MDB_LINK)))) pp := kit.Path(path.Join(p, "_install")) @@ -94,10 +93,10 @@ func init() { return } - m.Toast(ice.SUCCESS, gdb.BUILD) + m.Toast(ice.SUCCESS, cli.BUILD) m.ProcessHold() }}, - gdb.SPAWN: {Name: "spawn link", Help: "新建", Hand: func(m *ice.Message, arg ...string) { + cli.SPAWN: {Name: "spawn link", Help: "新建", Hand: func(m *ice.Message, arg ...string) { port := m.Cmdx(tcp.PORT, aaa.RIGHT) target := path.Join(m.Conf(cli.DAEMON, kit.META_PATH), port) source := path.Join(m.Conf(INSTALL, kit.META_PATH), kit.TrimExt(m.Option(kit.MDB_LINK))) @@ -107,8 +106,8 @@ func init() { }) m.Echo(target) }}, - gdb.START: {Name: "start link cmd", Help: "启动", Hand: func(m *ice.Message, arg ...string) { - p := m.Option(cli.CMD_DIR, m.Cmdx(INSTALL, gdb.SPAWN)) + cli.START: {Name: "start link cmd", Help: "启动", Hand: func(m *ice.Message, arg ...string) { + p := m.Option(cli.CMD_DIR, m.Cmdx(INSTALL, cli.SPAWN)) args := []string{} switch cb := m.Optionv(PREPARE).(type) { diff --git a/core/team/plan.go b/core/team/plan.go index 0d0a38b8..ec627d61 100644 --- a/core/team/plan.go +++ b/core/team/plan.go @@ -6,7 +6,6 @@ import ( ice "github.com/shylinux/icebergs" "github.com/shylinux/icebergs/base/cli" "github.com/shylinux/icebergs/base/ctx" - "github.com/shylinux/icebergs/base/gdb" "github.com/shylinux/icebergs/base/mdb" kit "github.com/shylinux/toolkits" ) @@ -26,6 +25,11 @@ func _plan_list(m *ice.Message, begin_time, end_time time.Time) *ice.Message { return m } +const ( + BEGIN = "begin" + END = "end" +) + const PLAN = "plan" func init() { @@ -67,10 +71,10 @@ func init() { } }}, - gdb.BEGIN: {Name: "begin", Help: "开始", Hand: func(m *ice.Message, arg ...string) { + BEGIN: {Name: "begin", Help: "开始", Hand: func(m *ice.Message, arg ...string) { _task_modify(m, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), STATUS, PROCESS) }}, - gdb.END: {Name: "end", Help: "结束", Hand: func(m *ice.Message, arg ...string) { + END: {Name: "end", Help: "结束", Hand: func(m *ice.Message, arg ...string) { _task_modify(m, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), STATUS, FINISH) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { diff --git a/core/team/task.go b/core/team/task.go index 37a9243e..dfcda280 100644 --- a/core/team/task.go +++ b/core/team/task.go @@ -6,7 +6,6 @@ import ( ice "github.com/shylinux/icebergs" "github.com/shylinux/icebergs/base/ctx" - "github.com/shylinux/icebergs/base/gdb" "github.com/shylinux/icebergs/base/mdb" "github.com/shylinux/icebergs/base/web" kit "github.com/shylinux/toolkits" @@ -49,9 +48,9 @@ func _task_scope(m *ice.Message, tz int, arg ...string) (time.Time, time.Time) { func _task_action(m *ice.Message, status interface{}, action ...string) string { switch status { case PREPARE: - action = append(action, gdb.BEGIN) + action = append(action, BEGIN) case PROCESS: - action = append(action, gdb.END) + action = append(action, END) case CANCEL: case FINISH: } @@ -211,10 +210,10 @@ func init() { } }}, - gdb.BEGIN: {Name: "begin", Help: "开始", Hand: func(m *ice.Message, arg ...string) { + BEGIN: {Name: "begin", Help: "开始", Hand: func(m *ice.Message, arg ...string) { _task_modify(m, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), STATUS, PROCESS) }}, - gdb.END: {Name: "end", Help: "完成", Hand: func(m *ice.Message, arg ...string) { + END: {Name: "end", Help: "完成", Hand: func(m *ice.Message, arg ...string) { _task_modify(m, m.Option(kit.MDB_ZONE), m.Option(kit.MDB_ID), STATUS, FINISH) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { diff --git a/misc.go b/misc.go index c5bab657..0ad4266e 100644 --- a/misc.go +++ b/misc.go @@ -272,10 +272,6 @@ type Sort struct { } func (m *Message) Toast(content string, arg ...interface{}) { - if m.Option(MSG_USERPOD) != "" { - return - } - if len(arg) > 1 { switch val := arg[1].(type) { case string: @@ -284,7 +280,12 @@ func (m *Message) Toast(content string, arg ...interface{}) { } } } - m.Cmd("web.space", m.Option(MSG_DAEMON), "toast", "", content, arg) + + if m.Option(MSG_USERPOD) == "" { + m.Cmd("web.space", m.Option(MSG_DAEMON), "toast", "", content, arg) + } else { + m.Option(MSG_TOAST, kit.Simple(content, arg)) + } } func (m *Message) GoToast(title string, cb func(toast func(string, int, int))) { m.Go(func() { @@ -333,6 +334,9 @@ func (m *Message) ProcessRefresh(delay string) { } m.Process(PROCESS_REFRESH) } +func (m *Message) ProcessRefresh30ms() { m.ProcessRefresh("30ms") } +func (m *Message) ProcessRefresh300ms() { m.ProcessRefresh("300ms") } +func (m *Message) ProcessRefresh3s() { m.ProcessRefresh("3s") } func (m *Message) ProcessField(arg ...interface{}) { m.Process(PROCESS_FIELD) m.Option("_prefix", arg...) diff --git a/misc/bash/bash.go b/misc/bash/bash.go index 2d5d2a9b..13294275 100644 --- a/misc/bash/bash.go +++ b/misc/bash/bash.go @@ -4,7 +4,7 @@ import ( "path" ice "github.com/shylinux/icebergs" - "github.com/shylinux/icebergs/base/gdb" + "github.com/shylinux/icebergs/base/cli" "github.com/shylinux/icebergs/base/web" "github.com/shylinux/icebergs/core/code" kit "github.com/shylinux/toolkits" @@ -26,11 +26,11 @@ var Index = &ice.Context{Name: BASH, Help: "命令行", web.DOWNLOAD: {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(code.INSTALL, web.DOWNLOAD, m.Conf(BASH, kit.META_SOURCE)) }}, - gdb.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(code.INSTALL, gdb.BUILD, m.Conf(BASH, kit.META_SOURCE)) + cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(code.INSTALL, cli.BUILD, m.Conf(BASH, kit.META_SOURCE)) }}, - gdb.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(code.INSTALL, gdb.START, m.Conf(BASH, kit.META_SOURCE), "bin/bash") + cli.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(code.INSTALL, cli.START, m.Conf(BASH, kit.META_SOURCE), "bin/bash") }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Cmdy(code.INSTALL, path.Base(m.Conf(BASH, kit.META_SOURCE)), arg) diff --git a/misc/bash/zsh.go b/misc/bash/zsh.go index f6aa9c7a..dde82aa7 100644 --- a/misc/bash/zsh.go +++ b/misc/bash/zsh.go @@ -2,7 +2,7 @@ package bash import ( ice "github.com/shylinux/icebergs" - "github.com/shylinux/icebergs/base/gdb" + "github.com/shylinux/icebergs/base/cli" "github.com/shylinux/icebergs/base/web" "github.com/shylinux/icebergs/core/code" kit "github.com/shylinux/toolkits" @@ -24,11 +24,11 @@ func init() { web.DOWNLOAD: {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(code.INSTALL, web.DOWNLOAD, m.Conf(ZSH, kit.META_SOURCE)) }}, - gdb.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(code.INSTALL, gdb.BUILD, m.Conf(ZSH, kit.META_SOURCE)) + cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(code.INSTALL, cli.BUILD, m.Conf(ZSH, kit.META_SOURCE)) }}, - gdb.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(code.INSTALL, gdb.START, m.Conf(ZSH, kit.META_SOURCE), "bin/zsh") + cli.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(code.INSTALL, cli.START, m.Conf(ZSH, kit.META_SOURCE), "bin/zsh") }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Cmdy(code.INSTALL, path.Base(m.Conf(ZSH, kit.META_SOURCE)), arg) diff --git a/misc/git/git.go b/misc/git/git.go index 11b42aad..74f8bcde 100644 --- a/misc/git/git.go +++ b/misc/git/git.go @@ -5,7 +5,6 @@ import ( ice "github.com/shylinux/icebergs" "github.com/shylinux/icebergs/base/cli" - "github.com/shylinux/icebergs/base/gdb" "github.com/shylinux/icebergs/base/nfs" "github.com/shylinux/icebergs/base/web" "github.com/shylinux/icebergs/core/code" @@ -43,10 +42,10 @@ var Index = &ice.Context{Name: GIT, Help: "代码库", web.DOWNLOAD: {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(code.INSTALL, web.DOWNLOAD, m.Conf(GIT, kit.META_SOURCE)) }}, - gdb.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(code.INSTALL, gdb.BUILD, m.Conf(GIT, kit.META_SOURCE)) + cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(code.INSTALL, cli.BUILD, m.Conf(GIT, kit.META_SOURCE)) }}, - gdb.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { + cli.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { m.Optionv(code.PREPARE, func(p string) []string { m.Option(cli.CMD_DIR, p) kit.Fetch(m.Confv(GIT, kit.Keym("config")), func(conf string, value interface{}) { @@ -56,7 +55,7 @@ var Index = &ice.Context{Name: GIT, Help: "代码库", }) return []string{} }) - m.Cmdy(code.INSTALL, gdb.START, m.Conf(GIT, kit.META_SOURCE), "bin/git") + m.Cmdy(code.INSTALL, cli.START, m.Conf(GIT, kit.META_SOURCE), "bin/git") }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Cmdy(code.INSTALL, path.Base(m.Conf(GIT, kit.META_SOURCE)), arg) diff --git a/misc/tmux/tmux.go b/misc/tmux/tmux.go index f228f8a0..6e482ec3 100644 --- a/misc/tmux/tmux.go +++ b/misc/tmux/tmux.go @@ -3,7 +3,6 @@ package tmux import ( ice "github.com/shylinux/icebergs" "github.com/shylinux/icebergs/base/cli" - "github.com/shylinux/icebergs/base/gdb" "github.com/shylinux/icebergs/base/mdb" "github.com/shylinux/icebergs/base/nfs" "github.com/shylinux/icebergs/base/web" @@ -61,15 +60,15 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台", web.DOWNLOAD: {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(code.INSTALL, web.DOWNLOAD, m.Conf(TMUX, kit.META_SOURCE)) }}, - gdb.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(code.INSTALL, gdb.BUILD, m.Conf(TMUX, kit.META_SOURCE)) + cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(code.INSTALL, cli.BUILD, m.Conf(TMUX, kit.META_SOURCE)) }}, - gdb.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { + cli.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { m.Optionv("prepare", func(p string) []string { m.Option(cli.CMD_DIR, p) return []string{"-S", kit.Path(p, "tmux.socket"), "new-session", "-dn", "miss"} }) - m.Cmdy(code.INSTALL, gdb.START, m.Conf(TMUX, kit.META_SOURCE), "bin/tmux") + m.Cmdy(code.INSTALL, cli.START, m.Conf(TMUX, kit.META_SOURCE), "bin/tmux") }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Cmdy(code.INSTALL, path.Base(m.Conf(TMUX, kit.META_SOURCE)), arg) diff --git a/misc/vim/vim.go b/misc/vim/vim.go index ff4a6e88..4483edda 100644 --- a/misc/vim/vim.go +++ b/misc/vim/vim.go @@ -2,7 +2,7 @@ package vim import ( ice "github.com/shylinux/icebergs" - "github.com/shylinux/icebergs/base/gdb" + "github.com/shylinux/icebergs/base/cli" "github.com/shylinux/icebergs/base/mdb" "github.com/shylinux/icebergs/base/nfs" "github.com/shylinux/icebergs/base/web" @@ -26,10 +26,10 @@ var Index = &ice.Context{Name: VIM, Help: "编辑器", web.DOWNLOAD: {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(code.INSTALL, web.DOWNLOAD, m.Conf(VIM, kit.META_SOURCE)) }}, - gdb.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { - m.Cmdy(code.INSTALL, gdb.BUILD, _vim_pkg(m), m.Confv(VIM, "meta.build")) + cli.BUILD: {Name: "build", Help: "构建", Hand: func(m *ice.Message, arg ...string) { + m.Cmdy(code.INSTALL, cli.BUILD, _vim_pkg(m), m.Confv(VIM, "meta.build")) }}, - gdb.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { + cli.START: {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) { m.Optionv("prepare", func(p string) []string { list := kit.Simple(m.Confv(VIM, "meta.start")) for i := 0; i < len(list); i += 2 { @@ -39,7 +39,7 @@ var Index = &ice.Context{Name: VIM, Help: "编辑器", return []string{} return []string{"-T", "screen", "-c", "PlugInstall", "-c", "exit", "-c", "exit"} }) - m.Cmdy(code.INSTALL, gdb.START, _vim_pkg(m), "bin/vim") + m.Cmdy(code.INSTALL, cli.START, _vim_pkg(m), "bin/vim") // 安装插件 m.Echo("\n")