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")