1
0
mirror of https://shylinux.com/x/icebergs synced 2025-05-01 19:19:24 +08:00
This commit is contained in:
harveyshao 2021-06-20 11:55:53 +08:00
parent 2b262d2e79
commit 970ab800d5
20 changed files with 135 additions and 144 deletions

View File

@ -94,7 +94,6 @@ const ( // 角色操作
WHITE = "white"
RIGHT = "right"
)
const ROLE = "role"
func init() {

View File

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

View File

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

View File

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

View File

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

View File

@ -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) }

View File

@ -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) {

View File

@ -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{

View File

@ -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()

View File

@ -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
}

View File

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

View File

@ -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) {

View File

@ -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) {

View File

@ -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
View File

@ -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...)

View File

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

View File

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

View File

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

View File

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

View File

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