diff --git a/base/aaa/aaa.go b/base/aaa/aaa.go
index 27b08e01..9670b504 100644
--- a/base/aaa/aaa.go
+++ b/base/aaa/aaa.go
@@ -2,20 +2,10 @@ package aaa
import (
ice "shylinux.com/x/icebergs"
- kit "shylinux.com/x/toolkits"
)
const AAA = "aaa"
-var Index = &ice.Context{Name: AAA, Help: "认证模块", Commands: map[string]*ice.Command{
- ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
- m.Rich(ROLE, nil, kit.Dict(kit.MDB_NAME, VOID, WHITE, kit.Dict(), BLACK, kit.Dict()))
- m.Rich(ROLE, nil, kit.Dict(kit.MDB_NAME, TECH, BLACK, kit.Dict(), WHITE, kit.Dict()))
- m.Load()
- }},
- ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
- m.Save()
- }},
-}}
+var Index = &ice.Context{Name: AAA, Help: "认证模块"}
func init() { ice.Index.Register(Index, nil, ROLE, SESS, TOTP, USER) }
diff --git a/base/aaa/role.go b/base/aaa/role.go
index d510b344..03dd8e80 100644
--- a/base/aaa/role.go
+++ b/base/aaa/role.go
@@ -8,29 +8,22 @@ import (
kit "shylinux.com/x/toolkits"
)
-func _role_user(m *ice.Message, userrole string, username ...string) {
- m.Richs(ROLE, nil, userrole, func(key string, value map[string]interface{}) {
- for _, user := range username {
- kit.Value(value, kit.Keys(USER, user), true)
- }
- })
-}
func _role_list(m *ice.Message, userrole string) {
- m.Richs(ROLE, nil, kit.Select(kit.MDB_FOREACH, userrole), func(key string, value map[string]interface{}) {
+ m.Richs(ROLE, nil, kit.Select(mdb.FOREACH, userrole), func(key string, value map[string]interface{}) {
kit.Fetch(value[WHITE], func(k string, v interface{}) {
- m.Push(ROLE, kit.Value(value, kit.MDB_NAME))
- m.Push(kit.MDB_ZONE, WHITE)
- m.Push(kit.MDB_KEY, k)
+ m.Push(ROLE, kit.Value(value, mdb.NAME))
+ m.Push(mdb.ZONE, WHITE)
+ m.Push(mdb.KEY, k)
})
kit.Fetch(value[BLACK], func(k string, v interface{}) {
- m.Push(ROLE, kit.Value(value, kit.MDB_NAME))
- m.Push(kit.MDB_ZONE, BLACK)
- m.Push(kit.MDB_KEY, k)
+ m.Push(ROLE, kit.Value(value, mdb.NAME))
+ m.Push(mdb.ZONE, BLACK)
+ m.Push(mdb.KEY, k)
})
})
}
func _role_chain(arg ...string) string {
- return strings.ReplaceAll(kit.Keys(arg), "/", ice.PT)
+ return strings.ReplaceAll(kit.Keys(arg), ice.PS, ice.PT)
}
func _role_black(m *ice.Message, userrole, chain string, status bool) {
m.Richs(ROLE, nil, userrole, func(key string, value map[string]interface{}) {
@@ -101,44 +94,42 @@ const ROLE = "role"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
- ROLE: {Name: ROLE, Help: "角色", Value: kit.Data(kit.MDB_SHORT, kit.MDB_NAME)},
+ ROLE: {Name: ROLE, Help: "角色", Value: kit.Data(mdb.SHORT, mdb.NAME)},
}, Commands: map[string]*ice.Command{
- ROLE: {Name: "role role auto create", Help: "角色", Action: map[string]*ice.Action{
- mdb.CREATE: {Name: "create role=void,tech zone=white,black key=", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
+ ROLE: {Name: "role role auto insert", Help: "角色", Action: map[string]*ice.Action{
+ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
+ m.Rich(ROLE, nil, kit.Dict(mdb.NAME, VOID, WHITE, kit.Dict(), BLACK, kit.Dict()))
+ m.Rich(ROLE, nil, kit.Dict(mdb.NAME, TECH, BLACK, kit.Dict(), WHITE, kit.Dict()))
+ }},
+ mdb.INSERT: {Name: "insert role=void,tech zone=white,black key=", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
m.Richs(ROLE, nil, m.Option(ROLE), func(key string, value map[string]interface{}) {
- list := value[m.Option(kit.MDB_ZONE)].(map[string]interface{})
- m.Log_CREATE(ROLE, m.Option(ROLE), list[m.Option(kit.MDB_KEY)])
- list[m.Option(kit.MDB_KEY)] = true
+ list := value[m.Option(mdb.ZONE)].(map[string]interface{})
+ m.Log_CREATE(ROLE, m.Option(ROLE), m.Option(mdb.KEY))
+ list[m.Option(mdb.KEY)] = true
})
}},
- mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
+ mdb.DELETE: {Name: "delete", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Richs(ROLE, nil, m.Option(ROLE), func(key string, value map[string]interface{}) {
- list := value[m.Option(kit.MDB_ZONE)].(map[string]interface{})
- m.Log_REMOVE(ROLE, m.Option(ROLE), list[m.Option(kit.MDB_KEY)])
- delete(list, m.Option(kit.MDB_KEY))
+ list := value[m.Option(mdb.ZONE)].(map[string]interface{})
+ m.Log_REMOVE(ROLE, m.Option(ROLE), m.Option(mdb.KEY))
+ delete(list, m.Option(mdb.KEY))
})
}},
- BLACK: {Name: "black role chain...", Help: "黑名单", Hand: func(m *ice.Message, arg ...string) {
+ BLACK: {Name: "black role chain", Help: "黑名单", Hand: func(m *ice.Message, arg ...string) {
_role_black(m, arg[0], _role_chain(arg[1:]...), true)
}},
- WHITE: {Name: "white role chain...", Help: "白名单", Hand: func(m *ice.Message, arg ...string) {
+ WHITE: {Name: "white role chain", Help: "白名单", Hand: func(m *ice.Message, arg ...string) {
_role_white(m, arg[0], _role_chain(arg[1:]...), true)
}},
- RIGHT: {Name: "right role chain...", Help: "查看权限", Hand: func(m *ice.Message, arg ...string) {
+ RIGHT: {Name: "right role chain", Help: "查看权限", Hand: func(m *ice.Message, arg ...string) {
if _role_right(m, arg[0], kit.Split(_role_chain(arg[1:]...), ice.PT)...) {
m.Echo(ice.OK)
}
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
- if len(arg) < 2 { // 角色列表
- _role_list(m, kit.Select("", arg, 0))
- m.PushAction(mdb.REMOVE)
- return
- }
-
- // 设置角色
- _role_user(m, arg[0], arg[1:]...)
+ _role_list(m, kit.Select("", arg, 0))
+ m.PushAction(mdb.DELETE)
}},
}})
}
diff --git a/base/aaa/sess.go b/base/aaa/sess.go
index c67a5ffd..f2b1653c 100644
--- a/base/aaa/sess.go
+++ b/base/aaa/sess.go
@@ -13,7 +13,7 @@ func _sess_check(m *ice.Message, sessid string) {
value = kit.GetMeta(value)
m.Log_AUTH(
- USERROLE, m.Option(ice.MSG_USERROLE, UserRole(m, value[USERNAME])),
+ USERROLE, m.Option(ice.MSG_USERROLE, value[USERROLE]),
USERNAME, m.Option(ice.MSG_USERNAME, value[USERNAME]),
USERNICK, m.Option(ice.MSG_USERNICK, value[USERNICK]),
)
@@ -25,24 +25,24 @@ func _sess_create(m *ice.Message, username string) string {
return ""
}
if m.Richs(USER, nil, username, nil) == nil {
- _user_create(m, username, kit.Hashs())
+ _user_create(m, kit.Select(TECH, VOID, m.Option(ice.MSG_USERROLE) == VOID), username, kit.Hashs())
}
h := m.Cmdx(mdb.INSERT, SESS, "", mdb.HASH,
USERROLE, UserRole(m, username), USERNAME, username,
IP, m.Option(ice.MSG_USERIP), UA, m.Option(ice.MSG_USERUA),
- kit.MDB_TIME, m.Time(m.Conf(SESS, kit.Keym(kit.MDB_EXPIRE))),
+ mdb.TIME, m.Time(m.Conf(SESS, kit.Keym(mdb.EXPIRE))),
)
m.Event(SESS_CREATE, SESS, h, USERNAME, username)
return h
}
-func SessCheck(m *ice.Message, sessid string) {
- _sess_check(m, sessid)
-}
func SessCreate(m *ice.Message, username string) string {
return m.Option(ice.MSG_SESSID, _sess_create(m, username))
}
+func SessCheck(m *ice.Message, sessid string) {
+ _sess_check(m, sessid)
+}
const (
IP = "ip"
@@ -60,8 +60,7 @@ const SESS = "sess"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
SESS: {Name: SESS, Help: "会话", Value: kit.Data(
- kit.MDB_SHORT, "uniq", kit.MDB_FIELD, "time,hash,userrole,username,ip,ua",
- kit.MDB_EXPIRE, "720h",
+ mdb.SHORT, "uniq", mdb.FIELD, "time,hash,userrole,username,ip,ua", mdb.EXPIRE, "720h",
)},
}, Commands: map[string]*ice.Command{
SESS: {Name: "sess hash auto prunes", Help: "会话", Action: ice.MergeAction(map[string]*ice.Action{
diff --git a/base/aaa/totp.go b/base/aaa/totp.go
index b4e80249..f91a9e33 100644
--- a/base/aaa/totp.go
+++ b/base/aaa/totp.go
@@ -55,8 +55,8 @@ const TOTP = "totp"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
TOTP: {Name: TOTP, Help: "动态令牌", Value: kit.Data(
- kit.MDB_SHORT, kit.MDB_NAME, kit.MDB_FIELD, "time,name,secret,period,number",
- kit.MDB_LINK, "otpauth://totp/%s?secret=%s",
+ mdb.SHORT, mdb.NAME, mdb.FIELD, "time,name,secret,period,number",
+ mdb.LINK, "otpauth://totp/%s?secret=%s",
)},
}, Commands: map[string]*ice.Command{
TOTP: {Name: "totp name auto create", Help: "动态令牌", Action: ice.MergeAction(map[string]*ice.Action{
@@ -65,22 +65,22 @@ func init() {
m.Option(SECRET, _totp_gen(kit.Int64(m.Option(PERIOD))))
}
- m.Cmd(mdb.INSERT, TOTP, "", mdb.HASH, m.OptionSimple(kit.MDB_NAME, SECRET, PERIOD, NUMBER))
+ m.Cmd(mdb.INSERT, TOTP, "", mdb.HASH, m.OptionSimple(mdb.NAME, SECRET, PERIOD, NUMBER))
}},
}, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
mdb.HashSelect(m.Spawn(c), arg...).Table(func(index int, value map[string]string, head []string) {
if len(arg) > 0 {
m.OptionFields(mdb.DETAIL)
}
- m.Push(kit.MDB_TIME, m.Time())
- m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
+ m.Push(mdb.TIME, m.Time())
+ m.Push(mdb.NAME, value[mdb.NAME])
period := kit.Int64(value[PERIOD])
m.Push("rest", period-time.Now().Unix()%period)
m.Push("code", _totp_get(value[SECRET], kit.Int(value[NUMBER]), period))
if len(arg) > 0 {
- m.PushQRCode(kit.MDB_SCAN, kit.Format(m.Config(kit.MDB_LINK), value[kit.MDB_NAME], value[SECRET]))
+ m.PushQRCode(mdb.SCAN, kit.Format(m.Config(mdb.LINK), value[mdb.NAME], value[SECRET]))
m.Echo(_totp_get(value[SECRET], kit.Int(value[NUMBER]), kit.Int64(value[PERIOD])))
}
})
diff --git a/base/aaa/user.go b/base/aaa/user.go
index 89c35958..bb96b3f1 100644
--- a/base/aaa/user.go
+++ b/base/aaa/user.go
@@ -8,7 +8,7 @@ import (
func _user_login(m *ice.Message, name, word string) (ok bool) {
if m.Richs(USER, nil, name, nil) == nil {
- _user_create(m, name, word)
+ _user_create(m, "", name, word)
}
m.Richs(USER, nil, name, func(key string, value map[string]interface{}) {
@@ -16,19 +16,20 @@ func _user_login(m *ice.Message, name, word string) (ok bool) {
})
return ok
}
-func _user_create(m *ice.Message, name, word string) {
+func _user_create(m *ice.Message, role, name, word string) {
m.Rich(USER, nil, kit.Dict(
- USERNAME, name, PASSWORD, word, USERNICK, name,
- USERZONE, m.Option(ice.MSG_USERZONE),
+ USERROLE, role, USERNAME, name, PASSWORD, word,
+ USERNICK, name, USERZONE, m.Option(ice.MSG_USERZONE),
))
m.Event(USER_CREATE, USER, name)
}
func _user_search(m *ice.Message, name, text string) {
- m.Richs(USER, nil, kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
+ m.Richs(USER, nil, mdb.FOREACH, func(key string, value map[string]interface{}) {
if value = kit.GetMeta(value); name != "" && name != value[USERNAME] {
return
}
- m.PushSearch(kit.MDB_TYPE, UserRole(m, value[USERNAME]), kit.MDB_NAME, kit.Format(value[USERNAME]), kit.MDB_TEXT, kit.Format(value[USERNICK]), value)
+ m.PushSearch(kit.SimpleKV("type,name,text",
+ kit.Format(value[USERROLE]), kit.Format(value[USERNAME]), kit.Format(value[USERNICK])), value)
})
}
@@ -37,17 +38,15 @@ func UserRoot(m *ice.Message) {
m.Option(ice.MSG_USERNAME, ice.Info.UserName)
if m.Richs(USER, "", ice.Info.UserName, nil) == nil {
- _user_create(m, ice.Info.UserName, kit.Hashs())
+ _user_create(m, ROOT, ice.Info.UserName, kit.Hashs())
}
}
func UserRole(m *ice.Message, username interface{}) (role string) {
if role = VOID; username == ice.Info.UserName {
return ROOT
}
- m.Richs(ROLE, nil, TECH, func(key string, value map[string]interface{}) {
- if kit.Value(kit.GetMeta(value), kit.Keys(USER, username)) == true {
- role = TECH
- }
+ m.Richs(USER, nil, kit.Format(username), func(key string, value map[string]interface{}) {
+ role = kit.Format(kit.GetMeta(value)[USERROLE])
})
return
}
@@ -107,31 +106,23 @@ const USER = "user"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
USER: {Name: USER, Help: "用户", Value: kit.Data(
- kit.MDB_SHORT, USERNAME, kit.MDB_FIELD, "time,username,usernick,userzone",
+ mdb.SHORT, USERNAME, mdb.FIELD, "time,userrole,username,usernick,userzone",
)},
}, Commands: map[string]*ice.Command{
- ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
- m.Cmd(mdb.SEARCH, mdb.CREATE, USER, m.Prefix(USER))
- }},
USER: {Name: "user username auto create", Help: "用户", Action: ice.MergeAction(map[string]*ice.Action{
- mdb.CREATE: {Name: "create userrole=void,tech username password", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
- _user_create(m, m.Option(USERNAME), m.Option(PASSWORD))
- _role_user(m, m.Option(USERROLE), m.Option(USERNAME))
- }},
- mdb.REMOVE: {Name: "remove username", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
- m.OptionFields(m.Config(kit.MDB_FIELD))
- m.Cmdy(mdb.DELETE, USER, "", mdb.HASH, m.OptionSimple(m.Config(kit.MDB_SHORT)))
- m.Event(USER_REMOVE, USER, m.Option(m.Config(kit.MDB_SHORT)))
+ ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
+ m.Cmd(mdb.SEARCH, mdb.CREATE, USER, m.PrefixKey())
}},
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
if arg[0] == USER {
_user_search(m, arg[1], kit.Select("", arg, 2))
}
}},
+ mdb.CREATE: {Name: "create userrole=void,tech username password", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
+ _user_create(m, m.Option(USERROLE), m.Option(USERNAME), m.Option(PASSWORD))
+ }},
}, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
- mdb.HashSelect(m, arg...).Table(func(index int, value map[string]string, head []string) {
- m.Push(USERROLE, UserRole(m, value[USERNAME]))
- })
+ mdb.HashSelect(m, arg...)
}},
}})
}
diff --git a/base/gdb/signal.go b/base/gdb/signal.go
index 19dfcce9..3ad681fb 100644
--- a/base/gdb/signal.go
+++ b/base/gdb/signal.go
@@ -48,7 +48,7 @@ func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
SIGNAL: {Name: SIGNAL, Help: "信号器", Value: kit.Data(
kit.MDB_SHORT, SIGNAL, kit.MDB_FIELD, "time,signal,name,cmd",
- kit.MDB_PATH, path.Join(ice.VAR_RUN, "ice.pid"),
+ nfs.PATH, path.Join(ice.VAR_RUN, "ice.pid"),
)},
}, Commands: map[string]*ice.Command{
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
diff --git a/base/log/log.go b/base/log/log.go
index 3389dfa1..cdbfe530 100644
--- a/base/log/log.go
+++ b/base/log/log.go
@@ -5,6 +5,7 @@ import (
"path"
ice "shylinux.com/x/icebergs"
+ "shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
log "shylinux.com/x/toolkits/logs"
)
@@ -89,17 +90,17 @@ const (
var Index = &ice.Context{Name: "log", Help: "日志模块", Configs: map[string]*ice.Config{
FILE: {Name: FILE, Help: "日志文件", Value: kit.Dict(
- BENCH, kit.Dict(kit.MDB_PATH, path.Join(ice.VAR_LOG, "bench.log"), kit.MDB_LIST, []string{}),
- WATCH, kit.Dict(kit.MDB_PATH, path.Join(ice.VAR_LOG, "watch.log"), kit.MDB_LIST, []string{
+ BENCH, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "bench.log"), kit.MDB_LIST, []string{}),
+ WATCH, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "watch.log"), kit.MDB_LIST, []string{
ice.LOG_CREATE, ice.LOG_REMOVE,
ice.LOG_INSERT, ice.LOG_DELETE,
ice.LOG_MODIFY, ice.LOG_SELECT,
ice.LOG_EXPORT, ice.LOG_IMPORT,
}),
- ERROR, kit.Dict(kit.MDB_PATH, path.Join(ice.VAR_LOG, "error.log"), kit.MDB_LIST, []string{
+ ERROR, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "error.log"), kit.MDB_LIST, []string{
ice.LOG_WARN, ice.LOG_ERROR,
}),
- TRACE, kit.Dict(kit.MDB_PATH, path.Join(ice.VAR_LOG, "trace.log"), kit.MDB_LIST, []string{
+ TRACE, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "trace.log"), kit.MDB_LIST, []string{
ice.LOG_DEBUG,
}),
)},
@@ -130,10 +131,10 @@ var Index = &ice.Context{Name: "log", Help: "日志模块", Configs: map[string]
m.Conf(SHOW, kit.Keys(k, FILE), key)
})
// 日志文件
- if f, p, e := kit.Create(kit.Format(value[kit.MDB_PATH])); m.Assert(e) {
+ if f, p, e := kit.Create(kit.Format(value[nfs.PATH])); m.Assert(e) {
m.Cap(ice.CTX_STREAM, path.Base(p))
value[FILE] = bufio.NewWriter(f)
- m.Log_CREATE(kit.MDB_FILE, p)
+ m.Log_CREATE(nfs.FILE, p)
}
})
}},
diff --git a/base/mdb/hash.go b/base/mdb/hash.go
index f6fdaecb..8fefa1ca 100644
--- a/base/mdb/hash.go
+++ b/base/mdb/hash.go
@@ -155,7 +155,9 @@ func HashAction(fields ...string) map[string]*ice.Action {
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
}},
REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
+ m.OptionFields(m.Config(FIELD))
m.Cmdy(DELETE, m.PrefixKey(), "", HASH, m.OptionSimple(_key(m)), arg)
+ m.Event(kit.Keys(m.CommandKey(), REMOVE), m.CommandKey(), m.Option(m.Config(SHORT)))
}},
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(MODIFY, m.PrefixKey(), "", HASH, m.OptionSimple(_key(m)), arg)
diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go
index 5e85f4ee..bd915bf1 100644
--- a/base/mdb/mdb.go
+++ b/base/mdb/mdb.go
@@ -23,6 +23,25 @@ const (
DICT = "dict"
META = "meta"
)
+const (
+ ID = "id"
+ KEY = "key"
+ TIME = "time"
+ // ZONE = "zone"
+ TYPE = "type"
+ NAME = "name"
+ TEXT = "text"
+
+ LINK = "link"
+ SCAN = "scan"
+
+ SHORT = "short"
+ FIELD = "field"
+ EXPIRE = "expire"
+
+ FOREACH = "*"
+ RANDOMS = "%"
+)
const (
FIELDS = "fields"
DETAIL = "detail"
diff --git a/base/nfs/cat.go b/base/nfs/cat.go
index 699c423f..4b5763ed 100644
--- a/base/nfs/cat.go
+++ b/base/nfs/cat.go
@@ -104,7 +104,7 @@ func _cat_list(m *ice.Message, name string) {
buf := make([]byte, ice.MOD_BUFS)
for begin := 0; true; {
if n, e := f.Read(buf[begin:]); !m.Warn(e, ice.ErrNotFound, name) {
- m.Log_IMPORT(kit.MDB_FILE, name, kit.MDB_SIZE, n)
+ m.Log_IMPORT(FILE, name, kit.MDB_SIZE, n)
if begin += n; begin < len(buf) {
buf = buf[:begin]
break
diff --git a/base/nfs/dir.go b/base/nfs/dir.go
index da1275c6..a1441a21 100644
--- a/base/nfs/dir.go
+++ b/base/nfs/dir.go
@@ -72,9 +72,9 @@ func _dir_list(m *ice.Message, root string, name string, level int, deep bool, d
}
case "full":
m.Push(field, path.Join(root, name, f.Name())+kit.Select("", ice.PS, f.IsDir()))
- case kit.MDB_PATH:
+ case PATH:
m.Push(field, path.Join(name, f.Name())+kit.Select("", ice.PS, f.IsDir()))
- case kit.MDB_FILE:
+ case FILE:
m.Push(field, f.Name()+kit.Select("", ice.PS, f.IsDir()))
case kit.MDB_NAME:
m.Push(field, f.Name())
@@ -89,7 +89,7 @@ func _dir_list(m *ice.Message, root string, name string, level int, deep bool, d
} else {
m.Push(field, kit.FmtSize(f.Size()))
}
- case kit.MDB_LINE:
+ case LINE:
if f.IsDir() {
if ls, e := ioutil.ReadDir(path.Join(root, name, f.Name())); e == nil {
m.Push(field, len(ls))
@@ -211,13 +211,13 @@ func init() {
nil, kit.Split(kit.Select("time,size,type,path", m.OptionFields())))
}},
mdb.UPLOAD: {Name: "upload", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
- m.Upload(m.Option(kit.MDB_PATH))
+ m.Upload(m.Option(PATH))
}},
TRASH: {Name: "trash", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
- m.Cmdy(TRASH, m.Option(kit.MDB_PATH))
+ m.Cmdy(TRASH, m.Option(PATH))
}},
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
- os.Remove(m.Option(kit.MDB_PATH))
+ os.Remove(m.Option(PATH))
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if m.Option(DIR_ROOT) != "" {
diff --git a/base/nfs/save.go b/base/nfs/save.go
index 31391140..bce145a5 100644
--- a/base/nfs/save.go
+++ b/base/nfs/save.go
@@ -16,7 +16,7 @@ func _save_file(m *ice.Message, name string, text ...string) {
for _, v := range text {
if n, e := f.WriteString(v); m.Assert(e) {
- m.Log_EXPORT(kit.MDB_FILE, p, kit.MDB_SIZE, n)
+ m.Log_EXPORT(FILE, p, kit.MDB_SIZE, n)
}
}
m.Echo(p)
@@ -38,7 +38,7 @@ func _push_file(m *ice.Message, name string, text ...string) {
for _, k := range text {
if n, e := f.WriteString(k); m.Assert(e) {
- m.Log_EXPORT(kit.MDB_FILE, p, kit.MDB_SIZE, n)
+ m.Log_EXPORT(FILE, p, kit.MDB_SIZE, n)
}
}
m.Echo(p)
@@ -53,8 +53,8 @@ func _copy_file(m *ice.Message, name string, from ...string) {
defer s.Close()
if n, e := io.Copy(f, s); !m.Warn(e, ice.ErrNotFound, name) {
- m.Log_IMPORT(kit.MDB_FILE, v, kit.MDB_SIZE, n)
- m.Log_EXPORT(kit.MDB_FILE, p, kit.MDB_SIZE, n)
+ m.Log_IMPORT(FILE, v, kit.MDB_SIZE, n)
+ m.Log_EXPORT(FILE, p, kit.MDB_SIZE, n)
}
}
}
diff --git a/base/nfs/tail.go b/base/nfs/tail.go
index 607e9b92..339724ca 100644
--- a/base/nfs/tail.go
+++ b/base/nfs/tail.go
@@ -18,9 +18,9 @@ func _tail_create(m *ice.Message, arg ...string) {
r, w := io.Pipe()
m.Go(func() {
for bio := bufio.NewScanner(r); bio.Scan(); {
- m.Log_IMPORT(kit.MDB_FILE, file, kit.MDB_SIZE, len(bio.Text()))
+ m.Log_IMPORT(FILE, file, kit.MDB_SIZE, len(bio.Text()))
m.Grow(TAIL, kit.Keys(kit.MDB_HASH, h), kit.Dict(
- kit.MDB_FILE, file, kit.MDB_SIZE, len(bio.Text()), kit.MDB_TEXT, bio.Text(),
+ FILE, file, kit.MDB_SIZE, len(bio.Text()), kit.MDB_TEXT, bio.Text(),
))
}
})
@@ -46,7 +46,7 @@ func init() {
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Richs(TAIL, "", kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
value, _ = kit.GetMeta(value), m.Option(kit.MDB_HASH, key)
- m.Cmd(TAIL, mdb.CREATE, kit.MDB_FILE, kit.Format(value[kit.MDB_FILE]), kit.MDB_NAME, kit.Format(value[kit.MDB_NAME]))
+ m.Cmd(TAIL, mdb.CREATE, FILE, kit.Format(value[FILE]), kit.MDB_NAME, kit.Format(value[kit.MDB_NAME]))
})
}},
TAIL: {Name: "tail name id auto page filter:text create", Help: "日志流", Action: ice.MergeAction(map[string]*ice.Action{
diff --git a/base/nfs/trash.go b/base/nfs/trash.go
index 1d49aeb2..ac3198e4 100644
--- a/base/nfs/trash.go
+++ b/base/nfs/trash.go
@@ -22,10 +22,10 @@ func _trash_create(m *ice.Message, name string) {
defer f.Close()
h := kit.Hashs(f)
- p := path.Join(m.Config(kit.MDB_PATH), h[:2], h)
+ p := path.Join(m.Config(PATH), h[:2], h)
os.MkdirAll(path.Dir(p), ice.MOD_DIR)
os.Rename(name, p)
- m.Cmdy(mdb.INSERT, TRASH, "", mdb.HASH, kit.MDB_FILE, p, kit.MDB_FROM, name)
+ m.Cmdy(mdb.INSERT, TRASH, "", mdb.HASH, FILE, p, kit.MDB_FROM, name)
}
}
}
@@ -36,21 +36,21 @@ func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
TRASH: {Name: TRASH, Help: "回收站", Value: kit.Data(
kit.MDB_SHORT, kit.MDB_FROM, kit.MDB_FIELD, "time,hash,file,from",
- kit.MDB_PATH, ice.VAR_TRASH,
+ PATH, ice.VAR_TRASH,
)},
}, Commands: map[string]*ice.Command{
TRASH: {Name: "trash hash auto prunes", Help: "回收站", Action: ice.MergeAction(map[string]*ice.Action{
mdb.REVERT: {Name: "revert", Help: "恢复", Hand: func(m *ice.Message, arg ...string) {
- os.Rename(m.Option(kit.MDB_FILE), m.Option(kit.MDB_FROM))
+ os.Rename(m.Option(FILE), m.Option(kit.MDB_FROM))
m.Cmd(mdb.DELETE, TRASH, "", mdb.HASH, m.OptionSimple(kit.MDB_HASH))
}},
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
- os.Remove(m.Option(kit.MDB_FILE))
+ os.Remove(m.Option(FILE))
m.Cmd(mdb.DELETE, TRASH, "", mdb.HASH, m.OptionSimple(kit.MDB_HASH))
}},
mdb.PRUNES: {Name: "prunes before@date", Help: "清理", Hand: func(m *ice.Message, arg ...string) {
mdb.HashPrunes(m, func(value map[string]string) bool {
- os.Remove(value[kit.MDB_FILE])
+ os.Remove(value[FILE])
return false
})
}},
diff --git a/base/tcp/port.go b/base/tcp/port.go
index 66bfb82d..e6519fd2 100644
--- a/base/tcp/port.go
+++ b/base/tcp/port.go
@@ -58,7 +58,7 @@ func init() {
m.Option(nfs.DIR_ROOT, m.Conf(cli.DAEMON, kit.META_PATH))
m.Cmd(nfs.DIR, ice.PWD, "time,path,size").Table(func(index int, value map[string]string, head []string) {
m.Push(kit.MDB_TIME, value[kit.MDB_TIME])
- m.Push(PORT, path.Base(value[kit.MDB_PATH]))
+ m.Push(PORT, path.Base(value[nfs.PATH]))
m.Push(kit.MDB_SIZE, value[kit.MDB_SIZE])
})
m.SortInt(PORT)
diff --git a/base/web/cache.go b/base/web/cache.go
index 7e7a7c97..f8cd5de7 100644
--- a/base/web/cache.go
+++ b/base/web/cache.go
@@ -13,7 +13,7 @@ import (
)
func _cache_name(m *ice.Message, h string) string {
- return path.Join(m.Config(kit.MDB_PATH), h[:2], h)
+ return path.Join(m.Config(nfs.PATH), h[:2], h)
}
func _cache_save(m *ice.Message, kind, name, text string, arg ...string) { // file size
if name == "" {
@@ -30,7 +30,7 @@ func _cache_save(m *ice.Message, kind, name, text string, arg ...string) { // fi
text = kit.Select(file, text)
h := m.Cmdx(mdb.INSERT, CACHE, "", mdb.HASH,
kit.MDB_TYPE, kind, kit.MDB_NAME, name, kit.MDB_TEXT, text,
- kit.MDB_FILE, file, kit.MDB_SIZE, size)
+ nfs.FILE, file, kit.MDB_SIZE, size)
// 返回结果
m.Push(kit.MDB_TIME, m.Time())
@@ -38,16 +38,16 @@ func _cache_save(m *ice.Message, kind, name, text string, arg ...string) { // fi
m.Push(kit.MDB_NAME, name)
m.Push(kit.MDB_TEXT, text)
m.Push(kit.MDB_SIZE, size)
- m.Push(kit.MDB_FILE, file)
+ m.Push(nfs.FILE, file)
m.Push(kit.MDB_HASH, h)
m.Push(DATA, h)
}
func _cache_watch(m *ice.Message, key, file string) {
mdb.HashSelect(m.Spawn(), key).Table(func(index int, value map[string]string, head []string) {
- if value[kit.MDB_FILE] == "" {
+ if value[nfs.FILE] == "" {
m.Cmdy(nfs.SAVE, file, value[kit.MDB_TEXT])
} else {
- m.Cmdy(nfs.LINK, file, value[kit.MDB_FILE])
+ m.Cmdy(nfs.LINK, file, value[nfs.FILE])
}
})
}
@@ -72,7 +72,7 @@ func _cache_upload(m *ice.Message, r *http.Request) (kind, name, file, size stri
// 导入数据
buf.Seek(0, os.SEEK_SET)
if n, e := io.Copy(f, buf); m.Assert(e) {
- m.Log_IMPORT(kit.MDB_FILE, p, kit.MDB_SIZE, kit.FmtSize(int64(n)))
+ m.Log_IMPORT(nfs.FILE, p, kit.MDB_SIZE, kit.FmtSize(int64(n)))
return h.Header.Get(ContentType), h.Filename, p, kit.Format(n)
}
}
@@ -102,7 +102,7 @@ func _cache_download(m *ice.Message, r *http.Response) (file, size string) {
})
default:
if s != step && s%10 == 0 {
- m.Log_IMPORT(kit.MDB_FILE, p, kit.MDB_STEP, s,
+ m.Log_IMPORT(nfs.FILE, p, kit.MDB_STEP, s,
kit.MDB_SIZE, kit.FmtSize(int64(size)), kit.MDB_TOTAL, kit.FmtSize(int64(total)))
}
}
@@ -117,7 +117,7 @@ func _cache_download(m *ice.Message, r *http.Response) (file, size string) {
if f, e := os.Open(p); m.Assert(e) {
defer f.Close()
- m.Log_IMPORT(kit.MDB_FILE, p, kit.MDB_SIZE, kit.FmtSize(int64(size)))
+ m.Log_IMPORT(nfs.FILE, p, kit.MDB_SIZE, kit.FmtSize(int64(size)))
c := _cache_name(m, kit.Hashs(f))
m.Cmd(nfs.LINK, c, p)
return c, kit.Format(size)
@@ -139,16 +139,16 @@ func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
CACHE: {Name: CACHE, Help: "缓存池", Value: kit.Data(
kit.MDB_SHORT, kit.MDB_TEXT, kit.MDB_FIELD, "time,hash,size,type,name,text",
- kit.MDB_STORE, ice.VAR_DATA, kit.MDB_PATH, ice.VAR_FILE, kit.MDB_FSIZE, "200000",
+ kit.MDB_STORE, ice.VAR_DATA, nfs.PATH, ice.VAR_FILE, kit.MDB_FSIZE, "200000",
kit.MDB_LIMIT, "50", kit.MDB_LEAST, "30",
)},
}, Commands: map[string]*ice.Command{
"/cache/": {Name: "/cache/", Help: "缓存池", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Richs(CACHE, nil, arg[0], func(key string, value map[string]interface{}) {
- if kit.Format(value[kit.MDB_FILE]) == "" {
+ if kit.Format(value[nfs.FILE]) == "" {
m.RenderResult(value[kit.MDB_TEXT])
} else {
- m.RenderDownload(value[kit.MDB_FILE])
+ m.RenderDownload(value[nfs.FILE])
}
})
}},
@@ -178,7 +178,7 @@ func init() {
return
}
- if m.Append(kit.MDB_FILE) == "" {
+ if m.Append(nfs.FILE) == "" {
m.PushScript("inner", m.Append(kit.MDB_TEXT))
} else {
m.PushDownload(m.Append(kit.MDB_NAME), m.MergeURL2("/share/cache/"+arg[0]))
diff --git a/base/web/dream.go b/base/web/dream.go
index 5bef0e55..a71dfa3a 100644
--- a/base/web/dream.go
+++ b/base/web/dream.go
@@ -16,7 +16,7 @@ import (
)
func _dream_list(m *ice.Message) {
- m.Cmdy(nfs.DIR, m.Config(kit.MDB_PATH), "time,size,name").Table(func(index int, value map[string]string, head []string) {
+ m.Cmdy(nfs.DIR, m.Config(nfs.PATH), "time,size,name").Table(func(index int, value map[string]string, head []string) {
if m.Richs(SPACE, nil, value[kit.MDB_NAME], func(key string, value map[string]interface{}) {
m.Push(kit.MDB_TYPE, value[kit.MDB_TYPE])
m.Push(kit.MDB_STATUS, cli.START)
@@ -36,9 +36,9 @@ func _dream_show(m *ice.Message, name string) {
m.Option(kit.MDB_NAME, name)
// 任务目录
- p := path.Join(m.Config(kit.MDB_PATH), name)
+ p := path.Join(m.Config(nfs.PATH), name)
if m.Option(kit.SSH_REPOS) != "" { // 下载源码
- m.Cmd("web.code.git.repos", mdb.CREATE, m.OptionSimple(kit.SSH_REPOS), kit.MDB_PATH, p)
+ m.Cmd("web.code.git.repos", mdb.CREATE, m.OptionSimple(kit.SSH_REPOS), nfs.PATH, p)
} else { // 创建目录
os.MkdirAll(p, ice.MOD_DIR)
}
@@ -77,12 +77,12 @@ func _dream_show(m *ice.Message, name string) {
m.Optionv(cli.CMD_ENV, kit.Simple(
cli.CTX_DEV, "http://:"+m.Cmd(SERVE).Append(tcp.PORT),
cli.PATH, kit.Path(path.Join(p, ice.BIN))+":"+kit.Path(ice.BIN)+":"+os.Getenv(cli.PATH),
- cli.USER, ice.Info.UserName, m.Confv(DREAM, kit.Keym(cli.ENV)),
+ cli.USER, ice.Info.UserName, m.Configv(cli.ENV),
))
// 启动任务
m.Optionv(cli.CMD_OUTPUT, path.Join(p, m.Config(kit.Keys(cli.ENV, cli.CTX_LOG))))
- m.Cmd(cli.DAEMON, m.Confv(DREAM, kit.Keym(ice.CMD)), ice.DEV, ice.DEV, kit.MDB_NAME, name, m.OptionSimple(RIVER))
+ m.Cmd(cli.DAEMON, m.Configv(ice.CMD), ice.DEV, ice.DEV, kit.MDB_NAME, name, m.OptionSimple(RIVER))
m.Sleep(ice.MOD_TICK)
m.Event(DREAM_CREATE, kit.MDB_TYPE, m.Option(kit.MDB_TYPE), kit.MDB_NAME, name)
}
@@ -102,10 +102,10 @@ func init() {
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
switch arg[0] {
case kit.MDB_NAME:
- m.Cmdy(nfs.DIR, m.Config(kit.MDB_PATH), "name,time")
+ m.Cmdy(nfs.DIR, m.Config(nfs.PATH), "name,time")
case kit.MDB_TEMPLATE:
- m.Cmdy(nfs.DIR, m.Config(kit.MDB_PATH), "path,size,time")
- m.SortStrR(kit.MDB_PATH)
+ m.Cmdy(nfs.DIR, m.Config(nfs.PATH), "path,size,time")
+ m.SortStrR(nfs.PATH)
}
}},
mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
@@ -124,11 +124,11 @@ func init() {
return
}
- m.Option(nfs.DIR_ROOT, path.Join(m.Config(kit.MDB_PATH), arg[0]))
+ m.Option(nfs.DIR_ROOT, path.Join(m.Config(nfs.PATH), arg[0]))
m.Cmdy(nfs.CAT, arg[1:])
}},
}, Configs: map[string]*ice.Config{
- DREAM: {Name: DREAM, Help: "梦想家", Value: kit.Data(kit.MDB_PATH, ice.USR_LOCAL_WORK,
+ DREAM: {Name: DREAM, Help: "梦想家", Value: kit.Data(nfs.PATH, ice.USR_LOCAL_WORK,
ice.CMD, []interface{}{"ice.bin", SPACE, tcp.DIAL},
cli.ENV, kit.Dict(cli.CTX_LOG, ice.BIN_BOOT_LOG),
"miss", `#!/bin/bash
diff --git a/base/web/route.go b/base/web/route.go
index 954a3dd2..b344dc59 100644
--- a/base/web/route.go
+++ b/base/web/route.go
@@ -96,11 +96,11 @@ func init() {
switch arg[0] {
case kit.MDB_NAME:
m.Cmdy(nfs.DIR, m.Conf(DREAM, kit.META_PATH), "name,size,time")
- m.SortStrR(kit.MDB_PATH)
+ m.SortStrR(nfs.PATH)
case kit.MDB_TEMPLATE:
m.Cmdy(nfs.DIR, m.Conf(DREAM, kit.META_PATH), "path,size,time")
- m.SortStrR(kit.MDB_PATH)
+ m.SortStrR(nfs.PATH)
}
}},
mdb.CREATE: {Name: "create main=src/main.go@key name=hi@key from=usr/icebergs/misc/bash/bash.go@key", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
diff --git a/base/web/serve.go b/base/web/serve.go
index 005967f8..aeeffb04 100644
--- a/base/web/serve.go
+++ b/base/web/serve.go
@@ -67,7 +67,7 @@ func _serve_main(m *ice.Message, w http.ResponseWriter, r *http.Request) bool {
msg := m.Spawn()
msg.W, msg.R = w, r
repos := kit.Select(ice.INTSHELL, ice.VOLCANOS, strings.Contains(r.Header.Get("User-Agent"), "Mozilla/5.0"))
- Render(msg, ice.RENDER_DOWNLOAD, path.Join(m.Config(kit.Keys(repos, kit.MDB_PATH)), m.Config(kit.Keys(repos, kit.MDB_INDEX))))
+ Render(msg, ice.RENDER_DOWNLOAD, path.Join(m.Config(kit.Keys(repos, nfs.PATH)), m.Config(kit.Keys(repos, kit.MDB_INDEX))))
return false // 网站主页
}
@@ -263,12 +263,12 @@ func init() {
"help", ice.TRUE, "x", ice.TRUE,
), LOGHEADERS, ice.FALSE,
- kit.MDB_PATH, kit.Dict("/", ice.USR_VOLCANOS),
- ice.VOLCANOS, kit.Dict(kit.MDB_PATH, ice.USR_VOLCANOS, kit.MDB_INDEX, "page/index.html",
+ nfs.PATH, kit.Dict("/", ice.USR_VOLCANOS),
+ ice.VOLCANOS, kit.Dict(nfs.PATH, ice.USR_VOLCANOS, kit.MDB_INDEX, "page/index.html",
kit.SSH_REPOS, "https://shylinux.com/x/volcanos", kit.SSH_BRANCH, kit.SSH_MASTER,
), ice.PUBLISH, ice.USR_PUBLISH,
- ice.INTSHELL, kit.Dict(kit.MDB_PATH, ice.USR_INTSHELL, kit.MDB_INDEX, ice.INDEX_SH,
+ ice.INTSHELL, kit.Dict(nfs.PATH, ice.USR_INTSHELL, kit.MDB_INDEX, ice.INDEX_SH,
kit.SSH_REPOS, "https://shylinux.com/x/intshell", kit.SSH_BRANCH, kit.SSH_MASTER,
), ice.REQUIRE, ".ish/pluged",
)},
diff --git a/base/web/share.go b/base/web/share.go
index 72694065..0c9d4765 100644
--- a/base/web/share.go
+++ b/base/web/share.go
@@ -12,6 +12,7 @@ import (
"shylinux.com/x/icebergs/base/aaa"
"shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/ssh"
"shylinux.com/x/icebergs/base/tcp"
kit "shylinux.com/x/toolkits"
@@ -24,33 +25,33 @@ func _share_link(m *ice.Message, p string, arg ...interface{}) string {
func _share_repos(m *ice.Message, repos string, arg ...string) {
prefix := kit.Path(m.Conf(SERVE, kit.Keym(ice.REQUIRE)))
if _, e := os.Stat(path.Join(prefix, repos)); e != nil { // 克隆代码
- m.Cmd("web.code.git.repos", mdb.CREATE, kit.SSH_REPOS, "https://"+repos, kit.MDB_PATH, path.Join(prefix, repos))
+ m.Cmd("web.code.git.repos", mdb.CREATE, kit.SSH_REPOS, "https://"+repos, nfs.PATH, path.Join(prefix, repos))
}
m.RenderDownload(path.Join(prefix, repos, path.Join(arg...)))
}
func _share_proxy(m *ice.Message) {
- switch p := path.Join(ice.VAR_PROXY, m.Option(ice.POD), m.Option(kit.MDB_PATH)); m.R.Method {
+ switch p := path.Join(ice.VAR_PROXY, m.Option(ice.POD), m.Option(nfs.PATH)); m.R.Method {
case http.MethodGet: // 下发文件
m.RenderDownload(path.Join(p, m.Option(kit.MDB_NAME)))
case http.MethodPost: // 上传文件
m.Cmdy(CACHE, UPLOAD)
m.Cmdy(CACHE, WATCH, m.Option(kit.MDB_DATA), p)
- m.RenderResult(m.Option(kit.MDB_PATH))
+ m.RenderResult(m.Option(nfs.PATH))
}
}
func _share_cache(m *ice.Message, arg ...string) {
if pod := m.Option(ice.POD); m.PodCmd(CACHE, arg[0]) {
- if m.Append(kit.MDB_FILE) == "" {
+ if m.Append(nfs.FILE) == "" {
m.RenderResult(m.Append(kit.MDB_TEXT))
} else {
m.Option(ice.POD, pod)
- _share_local(m, m.Append(kit.MDB_FILE))
+ _share_local(m, m.Append(nfs.FILE))
}
return
}
msg := m.Cmd(CACHE, arg[0])
- m.RenderDownload(msg.Append(kit.MDB_FILE), msg.Append(kit.MDB_TYPE), msg.Append(kit.MDB_NAME))
+ m.RenderDownload(msg.Append(nfs.FILE), msg.Append(kit.MDB_TYPE), msg.Append(kit.MDB_NAME))
}
func _share_local(m *ice.Message, arg ...string) {
p := path.Join(arg...)
@@ -76,7 +77,7 @@ func _share_local(m *ice.Message, arg ...string) {
// 上传文件
m.Cmdy(SPACE, m.Option(ice.POD), SPIDE, ice.DEV, SPIDE_RAW, m.MergeURL2("/share/proxy"),
- SPIDE_PART, m.OptionSimple(ice.POD), kit.MDB_PATH, p, CACHE, cache.Format(ice.MOD_TIME), UPLOAD, "@"+p)
+ SPIDE_PART, m.OptionSimple(ice.POD), nfs.PATH, p, CACHE, cache.Format(ice.MOD_TIME), UPLOAD, "@"+p)
if s, e := os.Stat(pp); e == nil && !s.IsDir() {
p = pp
diff --git a/base/web/spide.go b/base/web/spide.go
index fbe3ef7b..abc25ca1 100644
--- a/base/web/spide.go
+++ b/base/web/spide.go
@@ -16,6 +16,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/tcp"
kit "shylinux.com/x/toolkits"
)
@@ -31,7 +32,7 @@ func _spide_create(m *ice.Message, name, address string) {
SPIDE_COOKIE, kit.Dict(), SPIDE_HEADER, kit.Dict(), SPIDE_CLIENT, kit.Dict(
kit.MDB_NAME, name, SPIDE_METHOD, SPIDE_POST, "url", address,
tcp.PROTOCOL, uri.Scheme, tcp.HOSTNAME, uri.Host,
- kit.MDB_PATH, dir, kit.MDB_FILE, file, "query", uri.RawQuery,
+ nfs.PATH, dir, nfs.FILE, file, "query", uri.RawQuery,
kit.MDB_TIMEOUT, "600s", LOGHEADERS, ice.FALSE,
),
)))
@@ -259,7 +260,7 @@ func _spide_save(m *ice.Message, cache, save, uri string, res *http.Response) {
defer f.Close()
if n, e := io.Copy(f, res.Body); m.Assert(e) {
- m.Log_EXPORT(kit.MDB_SIZE, n, kit.MDB_FILE, p)
+ m.Log_EXPORT(kit.MDB_SIZE, n, nfs.FILE, p)
m.Echo(p)
}
}
diff --git a/base/web/story.go b/base/web/story.go
index 9e0e686b..29bc0580 100644
--- a/base/web/story.go
+++ b/base/web/story.go
@@ -45,12 +45,12 @@ func _story_index(m *ice.Message, name string, withdata bool) {
m.Richs(CACHE, nil, name, func(key string, value map[string]interface{}) {
// 查询数据
m.Push(DATA, key)
- m.Push(key, value, []string{kit.MDB_TEXT, kit.MDB_FILE, kit.MDB_SIZE, kit.MDB_TIME, kit.MDB_NAME, kit.MDB_TYPE})
+ m.Push(key, value, []string{kit.MDB_TEXT, nfs.FILE, kit.MDB_SIZE, kit.MDB_TIME, kit.MDB_NAME, kit.MDB_TYPE})
if withdata {
- if value[kit.MDB_FILE] == "" {
+ if value[nfs.FILE] == "" {
m.Echo("%s", kit.Format(value[kit.MDB_TEXT]))
} else {
- m.Echo("%s", m.Cmdx(nfs.CAT, value[kit.MDB_FILE]))
+ m.Echo("%s", m.Cmdx(nfs.CAT, value[nfs.FILE]))
}
}
})
diff --git a/core/chat/action.go b/core/chat/action.go
index f6ba738d..a3100188 100644
--- a/core/chat/action.go
+++ b/core/chat/action.go
@@ -7,6 +7,7 @@ import (
"shylinux.com/x/icebergs/base/aaa"
"shylinux.com/x/icebergs/base/ctx"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/web"
kit "shylinux.com/x/toolkits"
)
@@ -131,7 +132,7 @@ func _action_domain(m *ice.Message, cmd string, arg ...string) (domain string) {
case PRIVATE: // 私有群
domain = m.Option(ice.MSG_DOMAIN, kit.Keys("U"+m.Option(ice.MSG_USERNAME)))
}
- m.Option(ice.MSG_LOCAL, path.Join(m.Config(kit.MDB_PATH), domain))
+ m.Option(ice.MSG_LOCAL, path.Join(m.Config(nfs.PATH), domain))
})
m.Log_AUTH(RIVER, river, STORM, storm, DOMAIN, domain)
return
@@ -154,7 +155,7 @@ func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
ACTION: {Name: ACTION, Help: "应用", Value: kit.Data(
MENUS, kit.List(kit.List("help", "tutor", "manual", "service", "devops", "refer")),
- kit.MDB_PATH, ice.USR_LOCAL_RIVER,
+ nfs.PATH, ice.USR_LOCAL_RIVER,
)},
}, Commands: map[string]*ice.Command{
"/action": {Name: "/action river storm action arg...", Help: "工作台", Action: ice.MergeAction(map[string]*ice.Action{
diff --git a/core/chat/cmd.go b/core/chat/cmd.go
index d884e3c9..14563605 100644
--- a/core/chat/cmd.go
+++ b/core/chat/cmd.go
@@ -16,7 +16,7 @@ const CMD = "cmd"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
- CMD: {Name: CMD, Help: "命令", Value: kit.Data(kit.MDB_SHORT, "type", kit.MDB_PATH, ice.PWD)},
+ CMD: {Name: CMD, Help: "命令", Value: kit.Data(kit.MDB_SHORT, "type", nfs.PATH, ice.PWD)},
}, Commands: map[string]*ice.Command{
"/cmd/": {Name: "/cmd/", Help: "命令", Action: ice.MergeAction(map[string]*ice.Action{
ice.CTX_INIT: {Name: "_init", Help: "初始化", Hand: func(m *ice.Message, arg ...string) {
@@ -35,7 +35,7 @@ func init() {
return // 目录
}
- p := path.Join(m.Config(kit.MDB_PATH), path.Join(arg...))
+ p := path.Join(m.Config(nfs.PATH), path.Join(arg...))
if mdb.HashSelect(m.Spawn(), kit.Ext(m.R.URL.Path)).Table(func(index int, value map[string]string, head []string) {
m.RenderCmd(value[kit.MDB_NAME], p)
}).Length() > 0 {
@@ -52,7 +52,7 @@ func init() {
}},
CMD: {Name: "cmd path auto upload up home", Help: "命令", Action: ice.MergeAction(map[string]*ice.Action{
web.UPLOAD: {Name: "upload", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
- m.Upload(path.Join(m.Config(kit.MDB_PATH), strings.TrimPrefix(path.Dir(m.R.URL.Path), "/cmd")))
+ m.Upload(path.Join(m.Config(nfs.PATH), strings.TrimPrefix(path.Dir(m.R.URL.Path), "/cmd")))
}},
"home": {Name: "home", Help: "根目录", Hand: func(m *ice.Message, arg ...string) {
@@ -72,7 +72,7 @@ func init() {
m.ProcessLocation(arg[0])
return
}
- m.Option(nfs.DIR_ROOT, path.Join(m.Config(kit.MDB_PATH), strings.TrimPrefix(path.Dir(m.R.URL.Path), "/cmd")))
+ m.Option(nfs.DIR_ROOT, path.Join(m.Config(nfs.PATH), strings.TrimPrefix(path.Dir(m.R.URL.Path), "/cmd")))
m.Cmdy(nfs.DIR, arg)
}},
}})
diff --git a/core/chat/div.go b/core/chat/div.go
index acd04abc..f8ca2189 100644
--- a/core/chat/div.go
+++ b/core/chat/div.go
@@ -27,7 +27,7 @@ const DIV = "div"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
DIV: {Name: "div", Help: "定制", Value: kit.Data(
- kit.MDB_FIELD, "time,hash,type,name,text", kit.MDB_PATH, ice.USR_PUBLISH,
+ kit.MDB_FIELD, "time,hash,type,name,text", nfs.PATH, ice.USR_PUBLISH,
kit.MDB_TEMPLATE, _div_template,
)},
}, Commands: map[string]*ice.Command{
diff --git a/core/chat/header.go b/core/chat/header.go
index f79b1d46..e4eb3f18 100644
--- a/core/chat/header.go
+++ b/core/chat/header.go
@@ -46,7 +46,6 @@ func _header_grant(m *ice.Message, arg ...string) {
}
// 授权登录
- m.Cmd(aaa.ROLE, kit.Select(aaa.TECH, aaa.VOID, m.Option(ice.MSG_USERROLE) == aaa.VOID), m.Option(ice.MSG_USERNAME))
m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
}
func _header_share(m *ice.Message, arg ...string) {
diff --git a/core/chat/river.go b/core/chat/river.go
index 53253a4a..6bddb974 100644
--- a/core/chat/river.go
+++ b/core/chat/river.go
@@ -6,6 +6,7 @@ import (
"shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/ctx"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/web"
"shylinux.com/x/icebergs/core/code"
kit "shylinux.com/x/toolkits"
@@ -170,8 +171,8 @@ func init() {
}},
aaa.INVITE: {Name: "invite", Help: "脚本", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(code.PUBLISH, ice.CONTEXTS)
- m.Cmd(code.PUBLISH, mdb.CREATE, kit.MDB_FILE, ice.BIN_ICE_SH)
- m.Cmd(code.PUBLISH, mdb.CREATE, kit.MDB_FILE, ice.BIN_ICE_BIN)
+ m.Cmd(code.PUBLISH, mdb.CREATE, nfs.FILE, ice.BIN_ICE_SH)
+ m.Cmd(code.PUBLISH, mdb.CREATE, nfs.FILE, ice.BIN_ICE_BIN)
}},
SHARE: {Name: "share", Help: "共享", Hand: func(m *ice.Message, arg ...string) {
_header_share(m, arg...)
diff --git a/core/code/autogen.go b/core/code/autogen.go
index f4baf4a5..198842bc 100644
--- a/core/code/autogen.go
+++ b/core/code/autogen.go
@@ -149,7 +149,7 @@ func init() {
switch arg[0] {
case kit.MDB_MAIN:
m.Cmdy(nfs.DIR, ice.SRC, "path,size,time", ice.Option{nfs.DIR_REG, `.*\.go`})
- m.RenameAppend(kit.MDB_PATH, arg[0])
+ m.RenameAppend(nfs.PATH, arg[0])
}
}},
mdb.CREATE: {Name: "create main=src/main.go@key key zone type=Zone,Hash,Data name=hi list help", Help: "模块", Hand: func(m *ice.Message, arg ...string) {
diff --git a/core/code/binpack.go b/core/code/binpack.go
index 743d18e5..64a753d7 100644
--- a/core/code/binpack.go
+++ b/core/code/binpack.go
@@ -38,16 +38,16 @@ func _pack_dir(m *ice.Message, pack *os.File, dir string) {
m.Option(nfs.DIR_TYPE, nfs.CAT)
m.Option(nfs.DIR_ROOT, dir)
- m.Cmd(nfs.DIR, ice.PWD).Sort(kit.MDB_PATH).Table(func(index int, value map[string]string, head []string) {
- if path.Base(value[kit.MDB_PATH]) == "binpack.go" {
+ m.Cmd(nfs.DIR, ice.PWD).Sort(nfs.PATH).Table(func(index int, value map[string]string, head []string) {
+ if path.Base(value[nfs.PATH]) == "binpack.go" {
return
}
- switch strings.Split(value[kit.MDB_PATH], ice.PS)[0] {
+ switch strings.Split(value[nfs.PATH], ice.PS)[0] {
case "pluged", "trash":
return
}
- pack.WriteString(_pack_file(m, path.Join(dir, value[kit.MDB_PATH]), path.Join(dir, value[kit.MDB_PATH])))
+ pack.WriteString(_pack_file(m, path.Join(dir, value[nfs.PATH]), path.Join(dir, value[nfs.PATH])))
})
pack.WriteString(ice.NL)
}
@@ -61,8 +61,8 @@ func _pack_volcanos(m *ice.Message, pack *os.File, dir string) {
pack.WriteString(_pack_file(m, ice.PS+k, path.Join(dir, k)))
}
for _, k := range []string{"lib", "page", "panel", "plugin"} {
- m.Cmd(nfs.DIR, k).Sort(kit.MDB_PATH).Table(func(index int, value map[string]string, head []string) {
- pack.WriteString(_pack_file(m, ice.PS+value[kit.MDB_PATH], path.Join(dir, value[kit.MDB_PATH])))
+ m.Cmd(nfs.DIR, k).Sort(nfs.PATH).Table(func(index int, value map[string]string, head []string) {
+ pack.WriteString(_pack_file(m, ice.PS+value[nfs.PATH], path.Join(dir, value[nfs.PATH])))
})
}
pack.WriteString(ice.NL)
diff --git a/core/code/c.go b/core/code/c.go
index e158b53a..cf45eb65 100644
--- a/core/code/c.go
+++ b/core/code/c.go
@@ -8,6 +8,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
)
@@ -95,7 +96,7 @@ func init() {
}
for _, i := range []string{"1", "2", "3", "8"} {
if text := _c_help(m, i, kit.Select(kit.MDB_MAIN, arg, 1)); text != "" {
- m.PushSearch(ice.CMD, MAN, kit.MDB_FILE, kit.Keys(arg[1], MAN+i), kit.MDB_LINE, 1, kit.MDB_TEXT, text)
+ m.PushSearch(ice.CMD, MAN, nfs.FILE, kit.Keys(arg[1], MAN+i), nfs.LINE, 1, kit.MDB_TEXT, text)
}
}
}},
diff --git a/core/code/compile.go b/core/code/compile.go
index f626b2ee..ca569293 100644
--- a/core/code/compile.go
+++ b/core/code/compile.go
@@ -27,7 +27,7 @@ func init() {
COMPILE: {Name: "compile arch=amd64,386,arm os=linux,darwin,windows src=src/main.go@key run:button", Help: "编译", Action: map[string]*ice.Action{
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(nfs.DIR, ice.SRC, "path,size,time", ice.Option{nfs.DIR_REG, `.*\.go$`})
- m.Sort(kit.MDB_PATH)
+ m.Sort(nfs.PATH)
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if len(arg) == 0 {
diff --git a/core/code/go.go b/core/code/go.go
index 6e3b4e16..03ec58d9 100644
--- a/core/code/go.go
+++ b/core/code/go.go
@@ -10,6 +10,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
)
@@ -40,7 +41,7 @@ func _go_tags(m *ice.Message, key string) {
bio := bufio.NewScanner(f)
for i := 1; bio.Scan(); i++ {
if i == line || bio.Text() == text {
- m.PushSearch(ice.CMD, "tags", kit.MDB_FILE, strings.TrimPrefix(file, ice.PWD), kit.MDB_LINE, kit.Format(i), kit.MDB_TEXT, bio.Text())
+ m.PushSearch(ice.CMD, "tags", nfs.FILE, strings.TrimPrefix(file, ice.PWD), nfs.LINE, kit.Format(i), kit.MDB_TEXT, bio.Text())
}
}
}
@@ -50,14 +51,14 @@ func _go_help(m *ice.Message, key string) {
if p == "" {
return
}
- m.PushSearch(ice.CMD, "help", kit.MDB_FILE, key+".godoc", kit.MDB_LINE, 1, kit.MDB_TEXT, p)
+ m.PushSearch(ice.CMD, "help", nfs.FILE, key+".godoc", nfs.LINE, 1, kit.MDB_TEXT, p)
}
func _go_find(m *ice.Message, key string) {
for _, p := range strings.Split(m.Cmdx(cli.SYSTEM, FIND, ".", "-name", key), ice.NL) {
if p == "" {
continue
}
- m.PushSearch(ice.CMD, FIND, kit.MDB_FILE, strings.TrimPrefix(p, ice.PWD), kit.MDB_LINE, 1, kit.MDB_TEXT, "")
+ m.PushSearch(ice.CMD, FIND, nfs.FILE, strings.TrimPrefix(p, ice.PWD), nfs.LINE, 1, kit.MDB_TEXT, "")
}
}
func _go_grep(m *ice.Message, key string) {
diff --git a/core/code/inner.go b/core/code/inner.go
index 235edddc..b6a22811 100644
--- a/core/code/inner.go
+++ b/core/code/inner.go
@@ -94,7 +94,7 @@ func init() {
return
}
if len(arg) < 2 {
- nfs.Dir(m, kit.MDB_PATH)
+ nfs.Dir(m, nfs.PATH)
m.Set(ice.MSG_STATUS)
return
}
diff --git a/core/code/install.go b/core/code/install.go
index 92b80b83..e088a56a 100644
--- a/core/code/install.go
+++ b/core/code/install.go
@@ -18,7 +18,7 @@ import (
func _install_download(m *ice.Message) {
link := m.Option(kit.MDB_LINK)
name := path.Base(link)
- file := path.Join(kit.Select(m.Config(kit.MDB_PATH), m.Option(kit.MDB_PATH)), name)
+ file := path.Join(kit.Select(m.Config(nfs.PATH), m.Option(nfs.PATH)), name)
defer m.Cmdy(nfs.DIR, file)
if _, e := os.Stat(file); e == nil {
@@ -46,7 +46,7 @@ func _install_download(m *ice.Message) {
// 下载
msg := m.Cmd("web.spide", ice.DEV, web.SPIDE_CACHE, web.SPIDE_GET, link)
- m.Cmd(nfs.LINK, file, msg.Append(kit.MDB_FILE))
+ m.Cmd(nfs.LINK, file, msg.Append(nfs.FILE))
// 解压
m.Option(cli.CMD_DIR, path.Dir(file))
@@ -54,7 +54,7 @@ func _install_download(m *ice.Message) {
})
}
func _install_build(m *ice.Message, arg ...string) {
- p := m.Option(cli.CMD_DIR, path.Join(m.Config(kit.MDB_PATH), kit.TrimExt(m.Option(kit.MDB_LINK))))
+ p := m.Option(cli.CMD_DIR, path.Join(m.Config(nfs.PATH), kit.TrimExt(m.Option(kit.MDB_LINK))))
pp := kit.Path(path.Join(p, "_install"))
// 推流
@@ -90,7 +90,7 @@ func _install_build(m *ice.Message, arg ...string) {
m.Toast(ice.SUCCESS, cli.BUILD)
}
func _install_order(m *ice.Message, arg ...string) {
- p := path.Join(m.Config(kit.MDB_PATH), kit.TrimExt(m.Option(kit.MDB_LINK)), m.Option(kit.MDB_PATH)+ice.NL)
+ p := path.Join(m.Config(nfs.PATH), kit.TrimExt(m.Option(kit.MDB_LINK)), m.Option(nfs.PATH)+ice.NL)
if !strings.Contains(m.Cmdx(nfs.CAT, ice.ETC_PATH), p) {
m.Cmd(nfs.PUSH, ice.ETC_PATH, p)
}
@@ -108,10 +108,10 @@ func _install_spawn(m *ice.Message, arg ...string) {
}
target := path.Join(m.Conf(cli.DAEMON, kit.META_PATH), m.Option(tcp.PORT))
- source := path.Join(m.Config(kit.MDB_PATH), kit.TrimExt(m.Option(kit.MDB_LINK)))
+ source := path.Join(m.Config(nfs.PATH), kit.TrimExt(m.Option(kit.MDB_LINK)))
m.Cmd(nfs.DIR, path.Join(source, kit.Select("_install", m.Option("install")))).Table(func(index int, value map[string]string, head []string) {
- m.Cmd(cli.SYSTEM, "cp", "-r", strings.TrimSuffix(value[kit.MDB_PATH], ice.PS), target)
+ m.Cmd(cli.SYSTEM, "cp", "-r", strings.TrimSuffix(value[nfs.PATH], ice.PS), target)
})
m.Echo(target)
}
@@ -154,7 +154,7 @@ const INSTALL = "install"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
INSTALL: {Name: INSTALL, Help: "安装", Value: kit.Data(
- kit.MDB_SHORT, kit.MDB_NAME, kit.MDB_PATH, ice.USR_INSTALL,
+ kit.MDB_SHORT, kit.MDB_NAME, nfs.PATH, ice.USR_INSTALL,
)},
}, Commands: map[string]*ice.Command{
INSTALL: {Name: "install name port path auto download", Help: "安装", Meta: kit.Dict(), Action: map[string]*ice.Action{
@@ -174,9 +174,9 @@ func init() {
_install_start(m, arg...)
}},
cli.SOURCE: {Name: "source link path", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
- m.Option(nfs.DIR_ROOT, path.Join(m.Config(kit.MDB_PATH), kit.TrimExt(m.Option(kit.MDB_LINK)), "_install"))
+ m.Option(nfs.DIR_ROOT, path.Join(m.Config(nfs.PATH), kit.TrimExt(m.Option(kit.MDB_LINK)), "_install"))
defer m.StatusTime(nfs.PATH, m.Option(nfs.DIR_ROOT))
- m.Cmdy(nfs.DIR, m.Option(kit.MDB_PATH))
+ m.Cmdy(nfs.DIR, m.Option(nfs.PATH))
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
switch len(arg) {
diff --git a/core/code/pprof.go b/core/code/pprof.go
index 041e8282..335261bb 100644
--- a/core/code/pprof.go
+++ b/core/code/pprof.go
@@ -48,7 +48,7 @@ func init() {
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
switch arg[0] {
case BINNARY:
- m.Cmdy(nfs.DIR, "bin/", "path,size,time").RenameAppend(kit.MDB_PATH, BINNARY)
+ m.Cmdy(nfs.DIR, "bin/", "path,size,time").RenameAppend(nfs.PATH, BINNARY)
case SERVICE:
m.Cmd(web.SPIDE).Table(func(index int, value map[string]string, head []string) {
m.Push(SERVICE, kit.MergeURL2(value["client.url"], "/debug/pprof/profile"))
diff --git a/core/code/publish.go b/core/code/publish.go
index ee649427..35bd2ac1 100644
--- a/core/code/publish.go
+++ b/core/code/publish.go
@@ -24,7 +24,7 @@ func _bin_list(m *ice.Message, dir string) {
if s, e := os.Stat(path.Join(p, file)); e == nil {
m.Push(kit.MDB_TIME, s.ModTime())
m.Push(kit.MDB_SIZE, kit.FmtSize(s.Size()))
- m.Push(kit.MDB_FILE, file)
+ m.Push(nfs.FILE, file)
m.PushDownload(kit.MDB_LINK, file, path.Join(p, file))
}
}
@@ -44,7 +44,7 @@ func _publish_file(m *ice.Message, file string, arg ...string) string {
}
// 发布文件
- target := path.Join(m.Config(kit.MDB_PATH), kit.Select(path.Base(file), arg, 0))
+ target := path.Join(m.Config(nfs.PATH), kit.Select(path.Base(file), arg, 0))
m.Log_EXPORT(PUBLISH, target, kit.MDB_FROM, file)
m.Cmd(nfs.LINK, target, file)
return target
@@ -52,7 +52,7 @@ func _publish_file(m *ice.Message, file string, arg ...string) string {
func _publish_list(m *ice.Message, arg ...string) {
m.Option(nfs.DIR_DEEP, ice.TRUE)
m.Option(nfs.DIR_REG, kit.Select("", arg, 0))
- m.Option(nfs.DIR_ROOT, m.Config(kit.MDB_PATH))
+ m.Option(nfs.DIR_ROOT, m.Config(nfs.PATH))
m.Cmdy(nfs.DIR, ice.PWD, kit.Select("time,size,line,path,link", arg, 1))
}
@@ -61,7 +61,7 @@ const PUBLISH = "publish"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
PUBLISH: {Name: PUBLISH, Help: "发布", Value: kit.Data(
- kit.MDB_PATH, ice.USR_PUBLISH, ice.CONTEXTS, _contexts,
+ nfs.PATH, ice.USR_PUBLISH, ice.CONTEXTS, _contexts,
SH, `#!/bin/bash
echo "hello world"
`,
@@ -71,30 +71,30 @@ echo "hello world"
}, Commands: map[string]*ice.Command{
PUBLISH: {Name: "publish path auto create volcanos icebergs intshell export", Help: "发布", Action: map[string]*ice.Action{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
- m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, m.Config(kit.MDB_PATH))
+ m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, m.Config(nfs.PATH))
m.Cmd(aaa.ROLE, aaa.WHITE, aaa.VOID, m.PrefixKey())
m.Config(ice.CONTEXTS, _contexts)
}},
ice.VOLCANOS: {Name: "volcanos", Help: "火山架", Hand: func(m *ice.Message, arg ...string) {
defer func() { m.EchoQRCode(m.Option(ice.MSG_USERWEB)) }()
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS, ice.CORE) }()
- m.Cmd(PUBLISH, mdb.CREATE, kit.MDB_FILE, ice.ETC_MISS_SH)
- m.Cmd(PUBLISH, mdb.CREATE, kit.MDB_FILE, ice.GO_MOD)
+ m.Cmd(PUBLISH, mdb.CREATE, nfs.FILE, ice.ETC_MISS_SH)
+ m.Cmd(PUBLISH, mdb.CREATE, nfs.FILE, ice.GO_MOD)
- m.Cmd(nfs.DEFS, path.Join(m.Config(kit.MDB_PATH), ice.ORDER_JS), m.Config(JS))
+ m.Cmd(nfs.DEFS, path.Join(m.Config(nfs.PATH), ice.ORDER_JS), m.Config(JS))
m.Cmd(nfs.DEFS, path.Join(m.Conf(web.SERVE, kit.Keym(ice.VOLCANOS, nfs.PATH)), PAGE_CACHE_JS), "")
m.Cmd(nfs.DEFS, path.Join(m.Conf(web.SERVE, kit.Keym(ice.VOLCANOS, nfs.PATH)), PAGE_CACHE_CSS), "")
_publish_list(m, `.*\.(html|css|js)$`)
}},
ice.ICEBERGS: {Name: "icebergs", Help: "冰山架", Hand: func(m *ice.Message, arg ...string) {
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS, ice.BASE) }()
- m.Cmd(PUBLISH, mdb.CREATE, kit.MDB_FILE, ice.BIN_ICE_BIN)
- m.Cmd(PUBLISH, mdb.CREATE, kit.MDB_FILE, ice.BIN_ICE_SH)
- _bin_list(m, m.Config(kit.MDB_PATH))
+ m.Cmd(PUBLISH, mdb.CREATE, nfs.FILE, ice.BIN_ICE_BIN)
+ m.Cmd(PUBLISH, mdb.CREATE, nfs.FILE, ice.BIN_ICE_SH)
+ _bin_list(m, m.Config(nfs.PATH))
}},
ice.INTSHELL: {Name: "intshell", Help: "神农架", Hand: func(m *ice.Message, arg ...string) {
defer func() { m.Cmdy(PUBLISH, ice.CONTEXTS, ice.MISC) }()
- m.Cmd(nfs.DEFS, path.Join(m.Config(kit.MDB_PATH), ice.ORDER_SH), m.Config(SH))
+ m.Cmd(nfs.DEFS, path.Join(m.Config(nfs.PATH), ice.ORDER_SH), m.Config(SH))
_publish_list(m, ".*\\.(sh|vim|conf)$")
}},
ice.CONTEXTS: {Name: "contexts", Help: "环境", Hand: func(m *ice.Message, arg ...string) {
@@ -115,11 +115,11 @@ echo "hello world"
m.ProcessAgain()
}},
mdb.CREATE: {Name: "create file", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
- _publish_file(m, m.Option(kit.MDB_FILE))
+ _publish_file(m, m.Option(nfs.FILE))
}},
nfs.TRASH: {Name: "trash", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
- p := m.Option(cli.CMD_DIR, m.Config(kit.MDB_PATH))
- os.Remove(path.Join(p, m.Option(kit.MDB_PATH)))
+ p := m.Option(cli.CMD_DIR, m.Config(nfs.PATH))
+ os.Remove(path.Join(p, m.Option(nfs.PATH)))
}},
mdb.EXPORT: {Name: "export", Help: "工具链", Hand: func(m *ice.Message, arg ...string) {
var list = []string{}
@@ -152,7 +152,7 @@ echo "hello world"
m.ToastSuccess()
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
- m.Option(nfs.DIR_ROOT, m.Config(kit.MDB_PATH))
+ m.Option(nfs.DIR_ROOT, m.Config(nfs.PATH))
m.Cmdy(nfs.DIR, kit.Select("", arg, 0), "time,size,path,action,link")
}},
}})
diff --git a/core/code/upgrade.go b/core/code/upgrade.go
index 02fe3ef0..11492146 100644
--- a/core/code/upgrade.go
+++ b/core/code/upgrade.go
@@ -6,6 +6,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/cli"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/web"
kit "shylinux.com/x/toolkits"
)
@@ -16,27 +17,27 @@ func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
UPGRADE: {Name: UPGRADE, Help: "升级", Value: kit.Dict(kit.MDB_HASH, kit.Dict(
cli.SYSTEM, kit.Dict(kit.MDB_LIST, kit.List(
- kit.MDB_TYPE, "bin", kit.MDB_FILE, "ice.sh", kit.MDB_PATH, ice.BIN_ICE_SH,
- kit.MDB_TYPE, "bin", kit.MDB_FILE, "ice.bin", kit.MDB_PATH, ice.BIN_ICE_BIN,
+ kit.MDB_TYPE, "bin", nfs.FILE, "ice.sh", nfs.PATH, ice.BIN_ICE_SH,
+ kit.MDB_TYPE, "bin", nfs.FILE, "ice.bin", nfs.PATH, ice.BIN_ICE_BIN,
)),
cli.SOURCE, kit.Dict(kit.MDB_LIST, kit.List(
- kit.MDB_TYPE, "txt", kit.MDB_FILE, "main.go", kit.MDB_PATH, ice.SRC_MAIN_GO,
- kit.MDB_TYPE, "txt", kit.MDB_FILE, "miss.sh", kit.MDB_PATH, ice.ETC_MISS_SH,
- kit.MDB_TYPE, "txt", kit.MDB_FILE, "go.mod", kit.MDB_PATH, ice.GO_MOD,
+ kit.MDB_TYPE, "txt", nfs.FILE, "main.go", nfs.PATH, ice.SRC_MAIN_GO,
+ kit.MDB_TYPE, "txt", nfs.FILE, "miss.sh", nfs.PATH, ice.ETC_MISS_SH,
+ kit.MDB_TYPE, "txt", nfs.FILE, "go.mod", nfs.PATH, ice.GO_MOD,
)),
))},
}, Commands: map[string]*ice.Command{
UPGRADE: {Name: "upgrade item=system,source run:button", Help: "升级", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Grows(cmd, kit.Keys(kit.MDB_HASH, kit.Select(cli.SYSTEM, arg, 0)), "", "", func(index int, value map[string]interface{}) {
- if value[kit.MDB_PATH] == ice.BIN_ICE_BIN { // 程序文件
- value[kit.MDB_FILE] = kit.Keys(ice.ICE, runtime.GOOS, runtime.GOARCH)
+ if value[nfs.PATH] == ice.BIN_ICE_BIN { // 程序文件
+ value[nfs.FILE] = kit.Keys(ice.ICE, runtime.GOOS, runtime.GOARCH)
m.Option(ice.EXIT, ice.TRUE)
}
// 下载文件
- msg := m.Cmd(web.SPIDE, ice.DEV, web.SPIDE_CACHE, web.SPIDE_GET, "/publish/"+kit.Format(value[kit.MDB_FILE]))
- m.Cmd(web.STORY, web.WATCH, msg.Append(kit.MDB_FILE), value[kit.MDB_PATH])
- os.Chmod(kit.Format(value[kit.MDB_PATH]), 0770)
+ msg := m.Cmd(web.SPIDE, ice.DEV, web.SPIDE_CACHE, web.SPIDE_GET, "/publish/"+kit.Format(value[nfs.FILE]))
+ m.Cmd(web.STORY, web.WATCH, msg.Append(nfs.FILE), value[nfs.PATH])
+ os.Chmod(kit.Format(value[nfs.PATH]), 0770)
})
if m.Option(ice.EXIT) == ice.TRUE {
m.Sleep("1s").Go(func() { m.Cmd(ice.EXIT, 1) })
diff --git a/core/code/vimer.go b/core/code/vimer.go
index c55a33d8..2883f972 100644
--- a/core/code/vimer.go
+++ b/core/code/vimer.go
@@ -18,7 +18,7 @@ func init() {
ice.Display("/plugin/local/code/vimer.js", INNER),
), Action: map[string]*ice.Action{
nfs.SAVE: {Name: "save type file path", Help: "保存", Hand: func(m *ice.Message, arg ...string) {
- m.Cmdy(nfs.SAVE, path.Join(m.Option(kit.MDB_PATH), m.Option(kit.MDB_FILE)))
+ m.Cmdy(nfs.SAVE, path.Join(m.Option(nfs.PATH), m.Option(nfs.FILE)))
}},
ice.RUN: {Name: "run", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(cli.SYSTEM, GO, ice.RUN, path.Join(kit.Slice(arg, 0, 2)...))
diff --git a/core/code/webpack.go b/core/code/webpack.go
index 02647121..f0e3f21d 100644
--- a/core/code/webpack.go
+++ b/core/code/webpack.go
@@ -12,10 +12,10 @@ import (
)
func _volcanos(m *ice.Message, file ...string) string {
- return path.Join(m.Conf(web.SERVE, kit.Keym(ice.VOLCANOS, kit.MDB_PATH)), path.Join(file...))
+ return path.Join(m.Conf(web.SERVE, kit.Keym(ice.VOLCANOS, nfs.PATH)), path.Join(file...))
}
func _publish(m *ice.Message, file ...string) string {
- return path.Join(m.Conf(PUBLISH, kit.Keym(kit.MDB_PATH)), path.Join(file...))
+ return path.Join(m.Conf(PUBLISH, kit.Keym(nfs.PATH)), path.Join(file...))
}
const (
@@ -50,18 +50,18 @@ func init() {
for _, k := range []string{"lib", "panel", "plugin"} {
m.Cmd(nfs.DIR, k).Table(func(index int, value map[string]string, head []string) {
- if kit.Ext(value[kit.MDB_PATH]) == CSS {
- js.WriteString(`Volcanos.meta.cache["` + path.Join(ice.PS, value[kit.MDB_PATH]) + "\"] = []\n")
- css.WriteString(m.Cmdx(nfs.CAT, value[kit.MDB_PATH]))
+ if kit.Ext(value[nfs.PATH]) == CSS {
+ js.WriteString(`Volcanos.meta.cache["` + path.Join(ice.PS, value[nfs.PATH]) + "\"] = []\n")
+ css.WriteString(m.Cmdx(nfs.CAT, value[nfs.PATH]))
}
})
}
js.WriteString(ice.NL)
for _, k := range []string{"lib", "panel", "plugin"} {
m.Cmd(nfs.DIR, k).Table(func(index int, value map[string]string, head []string) {
- if kit.Ext(value[kit.MDB_PATH]) == JS {
- js.WriteString(`_can_name = "` + path.Join(ice.PS, value[kit.MDB_PATH]) + "\";\n")
- js.WriteString(m.Cmdx(nfs.CAT, value[kit.MDB_PATH]))
+ if kit.Ext(value[nfs.PATH]) == JS {
+ js.WriteString(`_can_name = "` + path.Join(ice.PS, value[nfs.PATH]) + "\";\n")
+ js.WriteString(m.Cmdx(nfs.CAT, value[nfs.PATH]))
}
})
}
diff --git a/core/wiki/data.go b/core/wiki/data.go
index 6c9fc5ea..cf56cbcc 100644
--- a/core/wiki/data.go
+++ b/core/wiki/data.go
@@ -11,7 +11,7 @@ const DATA = "data"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
DATA: {Name: DATA, Help: "数据表格", Value: kit.Data(
- kit.MDB_PATH, ice.USR_LOCAL_EXPORT, kit.MDB_REGEXP, ".*\\.csv",
+ nfs.PATH, ice.USR_LOCAL_EXPORT, kit.MDB_REGEXP, ".*\\.csv",
)},
}, Commands: map[string]*ice.Command{
DATA: {Name: "data path auto", Help: "数据表格", Meta: kit.Dict(
diff --git a/core/wiki/feel.go b/core/wiki/feel.go
index 5c5f42a2..dcab8115 100644
--- a/core/wiki/feel.go
+++ b/core/wiki/feel.go
@@ -6,6 +6,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/web"
kit "shylinux.com/x/toolkits"
)
@@ -15,14 +16,14 @@ const FEEL = "feel"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
FEEL: {Name: FEEL, Help: "影音媒体", Value: kit.Data(
- kit.MDB_PATH, ice.USR_LOCAL_IMAGE, kit.MDB_REGEXP, ".*.(png|PNG|jpg|JPG|jpeg|mp4|m4v|MOV)",
+ nfs.PATH, ice.USR_LOCAL_IMAGE, kit.MDB_REGEXP, ".*.(png|PNG|jpg|JPG|jpeg|mp4|m4v|MOV)",
)},
}, Commands: map[string]*ice.Command{
FEEL: {Name: "feel path auto upload 上一页 下一页 actions", Help: "影音媒体", Meta: kit.Dict(
ice.Display("/plugin/local/wiki/feel.js"),
), Action: map[string]*ice.Action{
web.UPLOAD: {Name: "upload", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
- _wiki_upload(m, m.CommandKey(), m.Option(kit.MDB_PATH))
+ _wiki_upload(m, m.CommandKey(), m.Option(nfs.PATH))
}},
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
os.Remove(strings.TrimPrefix(arg[0], "/share/local/"))
diff --git a/core/wiki/image.go b/core/wiki/image.go
index 11b34501..654075b4 100644
--- a/core/wiki/image.go
+++ b/core/wiki/image.go
@@ -5,6 +5,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
)
@@ -34,7 +35,7 @@ func init() {
}, Configs: map[string]*ice.Config{
IMAGE: {Name: IMAGE, Help: "图片", Value: kit.Data(
kit.MDB_TEMPLATE, `
`,
- kit.MDB_PATH, ice.USR_LOCAL_IMAGE,
+ nfs.PATH, ice.USR_LOCAL_IMAGE,
)},
}})
}
diff --git a/core/wiki/json.go b/core/wiki/json.go
index b5b83de7..9b87b32b 100644
--- a/core/wiki/json.go
+++ b/core/wiki/json.go
@@ -52,7 +52,7 @@ const JSON = "json"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
JSON: {Name: JSON, Help: "数据结构", Value: kit.Data(
- kit.MDB_PATH, ice.USR_LOCAL_EXPORT, kit.MDB_REGEXP, ".*\\.json",
+ nfs.PATH, ice.USR_LOCAL_EXPORT, kit.MDB_REGEXP, ".*\\.json",
)},
}, Commands: map[string]*ice.Command{
JSON: {Name: "json path auto", Help: "数据结构", Meta: kit.Dict(
diff --git a/core/wiki/video.go b/core/wiki/video.go
index 54f118f3..304a75d9 100644
--- a/core/wiki/video.go
+++ b/core/wiki/video.go
@@ -5,6 +5,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
)
@@ -32,7 +33,7 @@ func init() {
}, Configs: map[string]*ice.Config{
VIDEO: {Name: "video", Help: "视频", Value: kit.Data(
kit.MDB_TEMPLATE, ``,
- kit.MDB_PATH, ice.USR_LOCAL_IMAGE,
+ nfs.PATH, ice.USR_LOCAL_IMAGE,
)},
}})
}
diff --git a/core/wiki/word.go b/core/wiki/word.go
index 0e21f41b..05368a90 100644
--- a/core/wiki/word.go
+++ b/core/wiki/word.go
@@ -25,7 +25,7 @@ const WORD = "word"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
WORD: {Name: WORD, Help: "语言文字", Value: kit.Data(
- kit.MDB_PATH, "", kit.MDB_REGEXP, ".*\\.shy", kit.MDB_ALIAS, kit.Dict(
+ nfs.PATH, "", kit.MDB_REGEXP, ".*\\.shy", kit.MDB_ALIAS, kit.Dict(
NAVMENU, kit.List(TITLE, NAVMENU),
PREMENU, kit.List(TITLE, PREMENU),
CHAPTER, kit.List(TITLE, CHAPTER),
diff --git a/misc/alpha/alpha.go b/misc/alpha/alpha.go
index 94089bc2..0f5fd697 100644
--- a/misc/alpha/alpha.go
+++ b/misc/alpha/alpha.go
@@ -8,6 +8,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/core/wiki"
kit "shylinux.com/x/toolkits"
)
@@ -67,7 +68,7 @@ var Index = &ice.Context{Name: ALPHA, Help: "英汉词典", Configs: map[string]
}, Commands: map[string]*ice.Command{
ALPHA: {Name: "alpha method=word,line word auto", Help: "英汉", Action: map[string]*ice.Action{
mdb.IMPORT: {Name: "import file=usr/word-dict/ecdict name=ecdict", Help: "加载词库", Hand: func(m *ice.Message, arg ...string) {
- _alpha_load(m, m.Option(kit.MDB_FILE), kit.Select(path.Base(m.Option(kit.MDB_FILE)), m.Option(kit.MDB_NAME)))
+ _alpha_load(m, m.Option(nfs.FILE), kit.Select(path.Base(m.Option(nfs.FILE)), m.Option(kit.MDB_NAME)))
}},
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
if arg[0] == ALPHA {
diff --git a/misc/bash/download.go b/misc/bash/download.go
index f19bec1f..5a3ca257 100644
--- a/misc/bash/download.go
+++ b/misc/bash/download.go
@@ -2,6 +2,7 @@ package bash
import (
ice "shylinux.com/x/icebergs"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/web"
"shylinux.com/x/icebergs/core/chat"
kit "shylinux.com/x/toolkits"
@@ -17,7 +18,7 @@ func init() {
// 下载文件
m.Cmdy(web.CACHE, m.Cmd(chat.FILES, arg[0]).Append(kit.MDB_DATA))
- m.Render(kit.Select(ice.RENDER_DOWNLOAD, ice.RENDER_RESULT, m.Append(kit.MDB_FILE) == ""), m.Append(kit.MDB_TEXT))
+ m.Render(kit.Select(ice.RENDER_DOWNLOAD, ice.RENDER_RESULT, m.Append(nfs.FILE) == ""), m.Append(kit.MDB_TEXT))
}},
"/upload": {Name: "/upload", Help: "上传", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
msg := m.Cmd(chat.FILES, web.UPLOAD) // 上传文件
diff --git a/misc/chrome/cache.go b/misc/chrome/cache.go
index 4dca43a8..1fcb30cd 100644
--- a/misc/chrome/cache.go
+++ b/misc/chrome/cache.go
@@ -16,7 +16,7 @@ func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
CACHE: {Name: CACHE, Help: "爬虫缓存", Value: kit.Data(
kit.MDB_SHORT, kit.MDB_LINK, kit.MDB_FIELD, "time,hash,step,size,total,type,name,text,link",
- kit.MDB_PATH, ice.USR_LOCAL_IMAGE,
+ nfs.PATH, ice.USR_LOCAL_IMAGE,
)},
}, Commands: map[string]*ice.Command{
CACHE: {Name: "cache hash auto prunes", Help: "爬虫缓存", Action: ice.MergeAction(map[string]*ice.Action{
@@ -31,8 +31,8 @@ func init() {
value[kit.MDB_TOTAL], value[kit.MDB_SIZE], value[kit.MDB_STEP] = total, size, kit.Format(size*100/total)
})
- p := path.Join(m.Config(kit.MDB_PATH), m.Option(kit.MDB_NAME))
- m.Cmdy(nfs.LINK, p, msg.Append(kit.MDB_FILE))
+ p := path.Join(m.Config(nfs.PATH), m.Option(kit.MDB_NAME))
+ m.Cmdy(nfs.LINK, p, msg.Append(nfs.FILE))
m.Toast("下载成功")
}},
mdb.PRUNES: {Name: "prunes", Help: "清理", Hand: func(m *ice.Message, arg ...string) {
diff --git a/misc/git/repos.go b/misc/git/repos.go
index 5595c9cf..004b5087 100644
--- a/misc/git/repos.go
+++ b/misc/git/repos.go
@@ -24,7 +24,7 @@ func _repos_path(name string) string {
func _repos_insert(m *ice.Message, name string, dir string) {
if s, e := os.Stat(m.Option(cli.CMD_DIR, path.Join(dir, ".git"))); e == nil && s.IsDir() {
ls := strings.SplitN(strings.Trim(m.Cmdx(cli.SYSTEM, GIT, "log", "-n1", `--pretty=format:"%ad %s"`, "--date=iso"), `"`), ice.SP, 4)
- m.Rich(REPOS, nil, kit.Data(kit.MDB_NAME, name, kit.MDB_PATH, dir,
+ m.Rich(REPOS, nil, kit.Data(kit.MDB_NAME, name, nfs.PATH, dir,
COMMIT, kit.Select("", ls, 3), kit.MDB_TIME, strings.Join(ls[:2], ice.SP),
BRANCH, strings.TrimSpace(m.Cmdx(cli.SYSTEM, GIT, BRANCH)),
REMOTE, strings.TrimSpace(m.Cmdx(cli.SYSTEM, GIT, REMOTE, "-v")),
@@ -55,30 +55,30 @@ func init() {
m.Conf(REPOS, kit.MDB_HASH, "")
_repos_insert(m, path.Base(kit.Pwd()), kit.Pwd())
m.Cmd(nfs.DIR, ice.USR, "name,path").Table(func(index int, value map[string]string, head []string) {
- _repos_insert(m, value[kit.MDB_NAME], value[kit.MDB_PATH])
+ _repos_insert(m, value[kit.MDB_NAME], value[nfs.PATH])
})
}},
mdb.CREATE: {Name: "create repos branch name path", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
m.Option(kit.MDB_NAME, kit.Select(strings.TrimSuffix(path.Base(m.Option(REPOS)), ".git"), m.Option(kit.MDB_NAME)))
- m.Option(kit.MDB_PATH, kit.Select(path.Join(ice.USR, m.Option(kit.MDB_NAME)), m.Option(kit.MDB_PATH)))
+ m.Option(nfs.PATH, kit.Select(path.Join(ice.USR, m.Option(kit.MDB_NAME)), m.Option(nfs.PATH)))
m.Option(REPOS, kit.Select(m.Config(REPOS)+ice.PS+m.Option(kit.MDB_NAME), m.Option(REPOS)))
- if s, e := os.Stat(path.Join(m.Option(kit.MDB_PATH), ".git")); e == nil && s.IsDir() {
+ if s, e := os.Stat(path.Join(m.Option(nfs.PATH), ".git")); e == nil && s.IsDir() {
return
}
// 下载仓库
- if s, e := os.Stat(m.Option(kit.MDB_PATH)); e == nil && s.IsDir() {
- m.Option(cli.CMD_DIR, m.Option(kit.MDB_PATH))
+ if s, e := os.Stat(m.Option(nfs.PATH)); e == nil && s.IsDir() {
+ m.Option(cli.CMD_DIR, m.Option(nfs.PATH))
m.Cmd(cli.SYSTEM, GIT, INIT)
m.Cmd(cli.SYSTEM, GIT, REMOTE, ADD, ORIGIN, m.Option(REPOS))
m.Cmd(cli.SYSTEM, GIT, PULL, ORIGIN, MASTER)
} else {
m.Cmd(cli.SYSTEM, GIT, CLONE, "-b", kit.Select(MASTER, m.Option(BRANCH)),
- m.Option(REPOS), m.Option(kit.MDB_PATH))
+ m.Option(REPOS), m.Option(nfs.PATH))
}
- _repos_insert(m, m.Option(kit.MDB_NAME), m.Option(kit.MDB_PATH))
+ _repos_insert(m, m.Option(kit.MDB_NAME), m.Option(nfs.PATH))
}},
}, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if len(arg) == 0 { // 仓库列表
diff --git a/misc/git/spide.go b/misc/git/spide.go
index 45e08898..f592e707 100644
--- a/misc/git/spide.go
+++ b/misc/git/spide.go
@@ -43,8 +43,8 @@ func _spide_go(m *ice.Message, file string) {
}
m.Push(kit.MDB_NAME, ls[0])
- m.Push(kit.MDB_FILE, ls[1])
- m.Push(kit.MDB_LINE, strings.TrimSuffix(ls[2], ";\""))
+ m.Push(nfs.FILE, ls[1])
+ m.Push(nfs.LINE, strings.TrimSuffix(ls[2], ";\""))
m.Push(kit.MDB_TYPE, ls[3])
m.Push(kit.MDB_EXTRA, strings.Join(ls[4:], ice.SP))
})
@@ -52,8 +52,8 @@ func _spide_go(m *ice.Message, file string) {
func _spide_c(m *ice.Message, file string) {
_spide_for(m.Cmdx(cli.SYSTEM, "ctags", "-f", "-", file), func(ls []string) {
m.Push(kit.MDB_NAME, ls[0])
- m.Push(kit.MDB_FILE, ls[1])
- m.Push(kit.MDB_LINE, "1")
+ m.Push(nfs.FILE, ls[1])
+ m.Push(nfs.LINE, "1")
})
}
@@ -61,10 +61,48 @@ const SPIDE = "spide"
func init() {
Index.Merge(&ice.Context{Commands: map[string]*ice.Command{
- SPIDE: {Name: "spide name auto", Help: "构架图", Action: ice.MergeAction(map[string]*ice.Action{
+ SPIDE: {Name: "spide name auto depend", Help: "构架图", Action: ice.MergeAction(map[string]*ice.Action{
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(REPOS, ice.OptionFields("name,time"))
}}, code.INNER: {Name: "web.code.inner"},
+ "depend": {Name: "depend path=icebergs/base", Help: "依赖", Hand: func(m *ice.Message, arg ...string) {
+ keys := map[string]bool{}
+ list := map[string]map[string]bool{}
+ dir := path.Join(ice.USR, m.Option(nfs.PATH)) + ice.PS
+ _spide_for(m.Cmdx(cli.SYSTEM, "gotags", "-R", dir), func(ls []string) {
+ if kit.Select("", ls, 3) != "i" {
+ return
+ }
+ if !strings.Contains(ls[0], m.Option(nfs.PATH)) {
+ return
+ }
+
+ item, ok := list[ls[0]]
+ if !ok {
+ item = map[string]bool{}
+ list[ls[0]] = item
+ }
+
+ p := strings.TrimPrefix(path.Dir(ls[1]), path.Join(ice.USR, m.Option(nfs.PATH)))
+ keys[p], item[p] = true, true
+ })
+
+ item := []string{}
+ for k := range keys {
+ item = append(item, k)
+ }
+ item = kit.Sort(item)
+
+ for k, v := range list {
+ m.Push("pkg", k)
+ m.Push("count", len(v))
+ for _, i := range item {
+ m.Push(i, kit.Select("", "ok", v[i]))
+ }
+ }
+ m.SortIntR("count")
+ m.ProcessInner()
+ }},
}, ctx.CmdAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if len(arg) == 0 { // 仓库列表
m.Cmdy(REPOS)
@@ -81,8 +119,8 @@ func init() {
if len(arg) == 1 { // 目录列表
m.Option(nfs.DIR_DEEP, ice.TRUE)
color := []string{cli.YELLOW, cli.BLUE, cli.CYAN, cli.RED}
- nfs.Dir(m, kit.MDB_PATH).Table(func(index int, value map[string]string, head []string) {
- m.Push(kit.MDB_COLOR, color[strings.Count(value[kit.MDB_PATH], ice.PS)%len(color)])
+ nfs.Dir(m, nfs.PATH).Table(func(index int, value map[string]string, head []string) {
+ m.Push(kit.MDB_COLOR, color[strings.Count(value[nfs.PATH], ice.PS)%len(color)])
})
return
}
@@ -97,7 +135,7 @@ func init() {
default:
_spide_c(m, arg[1])
}
- m.SortInt(kit.MDB_LINE)
+ m.SortInt(nfs.LINE)
}},
}})
}
diff --git a/misc/git/status.go b/misc/git/status.go
index 64fd81ef..e5c9d22c 100644
--- a/misc/git/status.go
+++ b/misc/git/status.go
@@ -92,7 +92,7 @@ func _status_each(m *ice.Message, title string, cmds ...string) {
m.Cmd(REPOS, ice.OptionFields("name,path")).Table(func(index int, value map[string]string, head []string) {
toast(value[kit.MDB_NAME], count, total)
- if msg := m.Cmd(cmds, ice.Option{cli.CMD_DIR, value[kit.MDB_PATH]}); !cli.IsSuccess(msg) {
+ if msg := m.Cmd(cmds, ice.Option{cli.CMD_DIR, value[nfs.PATH]}); !cli.IsSuccess(msg) {
m.Toast3s(msg.Append(cli.CMD_ERR), "error: "+value[kit.MDB_NAME])
list = append(list, value[kit.MDB_NAME])
m.Sleep3s()
@@ -123,7 +123,7 @@ func _status_stat(m *ice.Message, files, adds, dels int) (int, int, int) {
}
func _status_list(m *ice.Message) (files, adds, dels int, last time.Time) {
m.Cmd(REPOS, ice.OptionFields("name,path")).Table(func(index int, value map[string]string, head []string) {
- m.Option(cli.CMD_DIR, value[kit.MDB_PATH])
+ m.Option(cli.CMD_DIR, value[nfs.PATH])
diff := m.Cmdx(cli.SYSTEM, GIT, STATUS, "-sb")
tags := m.Cmdx(cli.SYSTEM, GIT, "describe", "--tags")
@@ -139,7 +139,7 @@ func _status_list(m *ice.Message) (files, adds, dels int, last time.Time) {
m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
m.Push(kit.MDB_TYPE, vs[0])
- m.Push(kit.MDB_FILE, vs[1])
+ m.Push(nfs.FILE, vs[1])
list := []string{}
switch vs[0] {
@@ -229,7 +229,7 @@ func init() {
_repos_cmd(m, m.Option(kit.MDB_NAME), PUSH, "--tags")
}},
ADD: {Name: "add", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
- _repos_cmd(m, m.Option(kit.MDB_NAME), ADD, m.Option(kit.MDB_FILE))
+ _repos_cmd(m, m.Option(kit.MDB_NAME), ADD, m.Option(nfs.FILE))
}}, OPT: {Name: "opt", Help: "优化"}, PRO: {Name: "pro", Help: "升级"},
COMMIT: {Name: "commit action=opt,add,pro comment=some@key", Help: "提交", Hand: func(m *ice.Message, arg ...string) {
if arg[0] == ctx.ACTION {
@@ -254,8 +254,8 @@ func init() {
}
case COMMENT:
- m.Push(kit.MDB_TEXT, m.Option(kit.MDB_FILE))
- for _, v := range kit.Split(m.Option(kit.MDB_FILE), " /") {
+ m.Push(kit.MDB_TEXT, m.Option(nfs.FILE))
+ for _, v := range kit.Split(m.Option(nfs.FILE), " /") {
m.Push(kit.MDB_TEXT, v)
}
}
diff --git a/misc/git/total.go b/misc/git/total.go
index 933928e5..8a1b8b45 100644
--- a/misc/git/total.go
+++ b/misc/git/total.go
@@ -55,7 +55,7 @@ func init() {
return
}
- msg := m.Cmd("_sum", value[kit.MDB_PATH], kit.MDB_TOTAL, "10000")
+ msg := m.Cmd("_sum", value[nfs.PATH], kit.MDB_TOTAL, "10000")
mu.Lock()
defer mu.Unlock()
diff --git a/misc/trash/web/_favor.go b/misc/trash/web/_favor.go
index 3df2c71c..b26fe3b6 100644
--- a/misc/trash/web/_favor.go
+++ b/misc/trash/web/_favor.go
@@ -4,6 +4,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/aaa"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
kit "shylinux.com/x/toolkits"
"encoding/csv"
@@ -213,7 +214,7 @@ func _favor_import(m *ice.Message, file string) {
count++
})
}
- m.Log_IMPORT(kit.MDB_FILE, file, kit.MDB_COUNT, count)
+ m.Log_IMPORT(nfs.FILE, file, kit.MDB_COUNT, count)
}
func _favor_export(m *ice.Message, file string) {
f, p, e := kit.Create(file)
@@ -246,7 +247,7 @@ func _favor_export(m *ice.Message, file string) {
count++
})
})
- m.Log_EXPORT(kit.MDB_FILE, p, kit.MDB_COUNT, count)
+ m.Log_EXPORT(nfs.FILE, p, kit.MDB_COUNT, count)
}
func FavorInsert(m *ice.Message, zone, kind string, name interface{}, text interface{}, extra ...string) {
diff --git a/misc/vim/favor.go b/misc/vim/favor.go
index a75c5fe8..200cea32 100644
--- a/misc/vim/favor.go
+++ b/misc/vim/favor.go
@@ -6,6 +6,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/core/code"
kit "shylinux.com/x/toolkits"
)
@@ -30,14 +31,14 @@ func init() {
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Cmd(FAVOR, m.Option(kit.MDB_ZONE)).Table(func(index int, value map[string]string, head []string) {
m.Echo("%v\n", m.Option(kit.MDB_ZONE)).Echo("%v:%v:%v:(%v): %v\n",
- value[kit.MDB_FILE], value[kit.MDB_LINE], "1", value[kit.MDB_NAME], value[kit.MDB_TEXT])
+ value[nfs.FILE], value[nfs.LINE], "1", value[kit.MDB_NAME], value[kit.MDB_TEXT])
})
}},
FAVOR: {Name: "favor zone id auto", Help: "收藏夹", Action: ice.MergeAction(map[string]*ice.Action{
mdb.INSERT: {Name: "insert zone=数据结构 type name=hi text=hello file line", Help: "添加"},
code.INNER: {Name: "inner", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
- p := path.Join(m.Option(cli.PWD), m.Option(kit.MDB_FILE))
- m.ProcessCommand(code.INNER, []string{path.Dir(p) + ice.PS, path.Base(p), m.Option(kit.MDB_LINE)}, arg...)
+ p := path.Join(m.Option(cli.PWD), m.Option(nfs.FILE))
+ m.ProcessCommand(code.INNER, []string{path.Dir(p) + ice.PS, path.Base(p), m.Option(nfs.LINE)}, arg...)
}},
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if mdb.ZoneSelect(m, arg...); len(arg) == 0 {
diff --git a/misc/vim/tags.go b/misc/vim/tags.go
index e28c6d0e..ad022eae 100644
--- a/misc/vim/tags.go
+++ b/misc/vim/tags.go
@@ -6,6 +6,7 @@ import (
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/mdb"
+ "shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/core/code"
kit "shylinux.com/x/toolkits"
)
@@ -28,9 +29,9 @@ func init() {
if mdb.ZoneSelect(m, m.Option("module")); m.Length() > 0 {
switch m.Append(kit.MDB_TYPE) {
case "function":
- m.Echo("4\nusr/volcanos%s\n/\\<%s: \\(shy\\|func\\)/\n", m.Append(kit.MDB_FILE), m.Option("pattern"))
+ m.Echo("4\nusr/volcanos%s\n/\\<%s: \\(shy\\|func\\)/\n", m.Append(nfs.FILE), m.Option("pattern"))
default:
- m.Echo("4\nusr/volcanos%s\n/\\<%s: /\n", m.Append(kit.MDB_FILE), m.Option("pattern"))
+ m.Echo("4\nusr/volcanos%s\n/\\<%s: /\n", m.Append(nfs.FILE), m.Option("pattern"))
}
return
}
@@ -41,9 +42,9 @@ func init() {
mdb.INSERT: {Name: "insert zone=core type name=hi text=hello file line", Help: "添加"},
code.INNER: {Name: "inner", Help: "源码", Hand: func(m *ice.Message, arg ...string) {
m.ProcessCommand(code.INNER, []string{
- kit.Select(ice.PWD, path.Dir(m.Option(kit.MDB_FILE))),
- path.Base(m.Option(kit.MDB_FILE)),
- m.Option(kit.MDB_LINE),
+ kit.Select(ice.PWD, path.Dir(m.Option(nfs.FILE))),
+ path.Base(m.Option(nfs.FILE)),
+ m.Option(nfs.LINE),
}, arg...)
}},
"listTags": {Name: "listTags", Help: "索引", Hand: func(m *ice.Message, arg ...string) {
@@ -64,7 +65,7 @@ func init() {
m.Sort(kit.MDB_NAME)
m.Echo("func\n").Table(func(index int, value map[string]string, head []string) {
m.Echo(arg[0] + ice.PT + value[kit.MDB_NAME] + ice.NL)
- m.Echo("%s: %s: %s // %s\n", value[kit.MDB_TYPE], value[kit.MDB_NAME], strings.Split(value[kit.MDB_TEXT], ice.NL)[0], value[kit.MDB_FILE])
+ m.Echo("%s: %s: %s // %s\n", value[kit.MDB_TYPE], value[kit.MDB_NAME], strings.Split(value[kit.MDB_TEXT], ice.NL)[0], value[nfs.FILE])
})
return
}