mirror of
https://shylinux.com/x/icebergs
synced 2025-05-02 03:29:25 +08:00
opt cli
This commit is contained in:
parent
2b262d2e79
commit
970ab800d5
@ -94,7 +94,6 @@ const ( // 角色操作
|
||||
WHITE = "white"
|
||||
RIGHT = "right"
|
||||
)
|
||||
|
||||
const ROLE = "role"
|
||||
|
||||
func init() {
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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))
|
||||
|
@ -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"
|
||||
|
@ -94,15 +94,15 @@ func _qrcode_web(m *ice.Message, text string) {
|
||||
}
|
||||
}
|
||||
|
||||
func Color(m *ice.Message, c string, str string) string {
|
||||
wrap, color := `<span style="color:%s">%s</span>`, c
|
||||
func Color(m *ice.Message, c string, str interface{}) string {
|
||||
wrap, color := `<span style="color:%s">%v</span>`, 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"
|
||||
|
@ -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) }
|
||||
|
@ -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) {
|
||||
|
@ -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{
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
1
conf.go
1
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"
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
14
misc.go
14
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...)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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")
|
||||
|
Loading…
x
Reference in New Issue
Block a user