1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-25 09:08:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-04-17 04:15:19 +08:00
parent 4b4179bd04
commit 65697070f4
8 changed files with 25 additions and 18 deletions

View File

@ -30,7 +30,7 @@ func _daemon_exec(m *ice.Message, cmd *exec.Cmd) {
cmd.Stderr = w
}
h := mdb.HashCreate(m.Spawn(), STATUS, START,
ice.CMD, kit.JoinWord(cmd.Args...), DIR, cmd.Dir, ENV, kit.Select("", cmd.Env),
ice.CMD, strings.TrimPrefix(strings.TrimPrefix(kit.JoinWord(cmd.Args...), kit.Path("")+nfs.PS), cmd.Dir+nfs.PS), DIR, cmd.Dir, ENV, kit.Select("", cmd.Env),
m.OptionSimple(CMD_INPUT, CMD_OUTPUT, CMD_ERRPUT, mdb.CACHE_CLEAR_ONEXIT),
)
if e := cmd.Start(); m.WarnNotValid(e, cmd.Args, err.String()) {

View File

@ -183,7 +183,7 @@ const RUNTIME = "runtime"
func init() {
Index.MergeCommands(ice.Commands{
RUNTIME: {Name: "runtime info=bootinfo,ifconfig,diskinfo,hostinfo,userinfo,bootinfo,role,api,cli,cmd,mod,env,path,chain auto upgrade reboot lock", Icon: "Infomation.png", Help: "运行环境", Actions: ice.MergeActions(ice.Actions{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m); aaa.White(m, ice.LICENSE) }},
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m); }},
IFCONFIG: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(tcp.HOST) }},
DISKINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_diskinfo(m) }},
HOSTINFO: {Hand: func(m *ice.Message, arg ...string) { _runtime_hostinfo(m) }},

View File

@ -131,7 +131,7 @@ func _hash_import(m *ice.Message, prefix, chain, file string) {
}
defer f.Close()
data := Map{}
m.Assert(json.NewDecoder(f).Decode(&data))
m.Warn(json.NewDecoder(f).Decode(&data))
m.Logs(IMPORT, KEY, path.Join(prefix, chain), FILE, kit.Keys(file, JSON), COUNT, len(data))
kit.If(m.Confv(prefix, kit.Keys(chain, HASH)) == nil, func() { m.Confv(prefix, kit.Keys(chain, HASH), ice.Map{}) })
kit.For(data, func(k string, v Any) { m.Confv(prefix, kit.Keys(chain, HASH, k), v) })
@ -407,7 +407,7 @@ func Rich(m *ice.Message, prefix string, chain Any, data Any) string {
}
func sortByField(m *ice.Message, fields string, arg ...string) *ice.Message {
return m.Table(func(value ice.Maps) {
m.SetAppend().OptionFields(ice.FIELDS_DETAIL)
m.SetAppend().FieldsSetDetail()
kit.For(kit.Split(fields), func(key string) {
key = strings.TrimSuffix(key, "*")
if key == HASH {

View File

@ -98,9 +98,11 @@ const (
ICONS = "icons"
UNITS = "units"
ORDER = "order"
SCORE = "score"
GROUP = "group"
VALID = "valid"
ENABLE = "enable"
MEMBER = "member"
DISABLE = "disable"
EXPIRED = "expired"

View File

@ -212,6 +212,7 @@ func init() {
Index.MergeCommands(ice.Commands{
DIR: {Name: "dir path auto upload app", Icon: "dir.png", Help: "文件夹", Actions: ice.Actions{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
aaa.White(m, ice.MAKEFILE, ice.README_MD, ice.LICENSE)
aaa.White(m, ice.SRC, ice.BIN, ice.USR)
aaa.Black(m, ice.USR_LOCAL)
}},

View File

@ -232,29 +232,23 @@ func init() {
cli.START: {Name: "start dev proto host port=9020 nodename username usernick", Hand: func(m *ice.Message, arg ...string) {
if runtime.GOOS == cli.LINUX {
m.Cmd(nfs.SAVE, nfs.ETC_LOCAL_SH, m.Spawn(ice.Maps{cli.PWD: kit.Path(""), aaa.USER: kit.UserName(), ctx.ARGS: kit.JoinCmds(arg...)}).Template("local.sh")+lex.NL)
m.Cmd("", PROXY_CONF, ice.Info.NodeName)
}
_serve_start(m)
}},
SERVE_START: {Hand: func(m *ice.Message, arg ...string) {
Count(m, m.ActionKey(), m.Option(tcp.PORT))
m.Cmd(SPIDE, mdb.CREATE, HostPort(m, "localhost", m.Option(tcp.PORT)), ice.OPS, nfs.USR_ICONS_CONTEXTS, nfs.REPOS, "")
kit.If(m.Option(ice.DEMO) == ice.TRUE, func() { m.Cmd(CHAT_HEADER, ice.DEMO) })
m.Go(func() { ssh.PrintQRCode(m, tcp.PublishLocalhost(m, _serve_address(m))) })
m.Cmd(SPIDE, mdb.CREATE, HostPort(m, tcp.LOCALHOST, m.Option(tcp.PORT)), ice.OPS, nfs.USR_ICONS_CONTEXTS, nfs.REPOS, "")
m.Cmds(SPIDE).Table(func(value ice.Maps) {
kit.If(value[CLIENT_NAME] != ice.OPS && value[TOKEN] != "", func() {
m.Cmd(SPACE, tcp.DIAL, ice.DEV, value[CLIENT_NAME], TOKEN, value[TOKEN], mdb.TYPE, SERVER)
})
})
kit.If(m.Option(ice.DEMO) == ice.TRUE, func() { m.Cmd(CHAT_HEADER, ice.DEMO) })
switch cb := m.Optionv(SERVE_START).(type) {
case func():
Count(m, m.ActionKey(), m.Option(tcp.PORT))
if cb, ok := m.Optionv(SERVE_START).(func()); ok {
cb()
}
m.Go(func() {
cli.Opens(m, mdb.Config(m, cli.OPEN))
ssh.PrintQRCode(m, tcp.PublishLocalhost(m, _serve_address(m)))
})
if runtime.GOOS == cli.LINUX {
m.Cmd("", PROXY_CONF, ice.Info.NodeName)
}
}},
PROXY_CONF: {Name: "proxyConf name* port host path", Hand: func(m *ice.Message, arg ...string) {
if dir := m.OptionDefault(nfs.PATH, PROXY_PATH, tcp.HOST, "127.0.0.1", tcp.PORT, "9020"); nfs.Exists(m, dir) {

View File

@ -63,8 +63,8 @@ func (m *Message) setDetail(key string, arg ...string) *Message {
m._meta[KEY][i] = m._meta[KEY][i+1]
m._meta[VALUE][i] = m._meta[VALUE][i+1]
}
m._meta[KEY] = m._meta[KEY][0:len(m._meta[KEY])]
m._meta[VALUE] = m._meta[VALUE][0:len(m._meta[VALUE])]
m._meta[KEY] = m._meta[KEY][0:len(m._meta[KEY])-1]
m._meta[VALUE] = m._meta[VALUE][0:len(m._meta[VALUE])-1]
return m
}
}

10
meta.go
View File

@ -289,6 +289,16 @@ func (m *Message) TableEchoWithStatus() *Message {
}
func (m *Message) Sort(key string, arg ...Any) *Message {
if m.FieldsIsDetail() {
key := m.value(KEY)
value := m.value(VALUE)
for i := 0; i < len(key)-1; i++ {
for j := i+1; j < len(key); j++ {
if key[i] > key[j] {
key[i], key[j] = key[j], key[i]
value[i], value[j] = value[j], value[i]
}
}
}
return m
}
order := map[string]map[string]int{}