mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
opt some
This commit is contained in:
parent
a5a6aa53a8
commit
be9e03a440
@ -28,8 +28,7 @@ func init() {
|
||||
}
|
||||
}
|
||||
for _, v := range os.Environ() {
|
||||
ls := kit.Split(v, "=", "=")
|
||||
if kit.IndexOf(env, ls[0]) == -1 {
|
||||
if ls := kit.Split(v, "=", "="); kit.IndexOf(env, ls[0]) == -1 && len(ls) > 1 {
|
||||
env = append(env, ls[0], ls[1])
|
||||
}
|
||||
}
|
||||
|
@ -162,7 +162,6 @@ const (
|
||||
|
||||
var ENV_LIST = []string{
|
||||
TERM, SHELL, CTX_SHY, CTX_DEV, CTX_OPS, CTX_ARG, CTX_PID, CTX_USER, CTX_SHARE, CTX_RIVER, CTX_DAEMON,
|
||||
"DOCKER_HOST",
|
||||
}
|
||||
|
||||
const (
|
||||
|
@ -29,15 +29,18 @@ func _dir_hash(m *ice.Message, p string) string {
|
||||
return ""
|
||||
}
|
||||
func _dir_list(m *ice.Message, root string, name string, level int, deep bool, dir_type string, dir_reg *regexp.Regexp, fields []string) *ice.Message {
|
||||
list, e := ReadDir(m, path.Join(root, name))
|
||||
if e != nil && len(list) == 0 { // 单个文件
|
||||
ls, _ := ReadDir(m, path.Dir(path.Join(root, name)))
|
||||
for _, s := range ls {
|
||||
if s.Name() == path.Base(name) {
|
||||
list = append(list, s)
|
||||
list, _ := ReadDir(m, path.Join(root, name))
|
||||
|
||||
if len(list) == 0 { // 单个文件
|
||||
if s, e := StatFile(m, path.Join(root, name)); e == nil && !s.IsDir() {
|
||||
ls, _ := ReadDir(m, path.Dir(path.Join(root, name)))
|
||||
for _, s := range ls {
|
||||
if s.Name() == path.Base(name) {
|
||||
list = append(list, s)
|
||||
}
|
||||
}
|
||||
name, deep = path.Dir(name), false
|
||||
}
|
||||
name, deep = path.Dir(name), false
|
||||
}
|
||||
|
||||
for _, f := range list {
|
||||
|
@ -144,7 +144,8 @@ func init() {
|
||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", ""))
|
||||
}},
|
||||
"xterm": {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.xterm", "hash", m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, "type", "sh")))
|
||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.xterm", mdb.HASH,
|
||||
m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, mdb.NAME, "xterm")))
|
||||
}},
|
||||
cli.STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmd(SPACE, mdb.MODIFY, m.OptionSimple(mdb.NAME), mdb.STATUS, cli.STOP)
|
||||
|
@ -141,3 +141,13 @@ func MergeLink(m Message, url string, arg ...ice.Any) string {
|
||||
func MergePod(m Message, pod string, arg ...ice.Any) string {
|
||||
return kit.MergePOD(kit.Select(ice.Info.Domain, m.Option(ice.MSG_USERWEB)), pod, arg...)
|
||||
}
|
||||
func MergePodCmd(m Message, pod, cmd string, arg ...ice.Any) string {
|
||||
p := "/chat"
|
||||
if pod != "" {
|
||||
p += "/pod/" + kit.Keys(m.Option(ice.MSG_USERPOD), pod)
|
||||
}
|
||||
if cmd != "" {
|
||||
p += "/cmd/" + cmd
|
||||
}
|
||||
return kit.MergeURL2(kit.Select(ice.Info.Domain, m.Option(ice.MSG_USERWEB)), p, arg...)
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ import (
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/gdb"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
"shylinux.com/x/icebergs/base/tcp"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
"shylinux.com/x/websocket"
|
||||
@ -348,15 +349,25 @@ func init() {
|
||||
m.StatusTimeCount("nCPU", ncpu, "nmem", kit.Format("%.2fG", nmem/1000.0))
|
||||
m.Debug("what %v", m.FormatMeta())
|
||||
}},
|
||||
cli.OPEN: {Name: "open", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME), "", ""))
|
||||
}},
|
||||
"vimer": {Name: "vimer", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", ""))
|
||||
}},
|
||||
"xterm": {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.xterm", mdb.HASH,
|
||||
m.Cmdx(SPACE, m.Option(mdb.NAME), "web.code.xterm", mdb.CREATE, mdb.TYPE, nfs.SH, mdb.NAME, "xterm")))
|
||||
}},
|
||||
}, mdb.HashCloseAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||
if len(arg) < 2 { // 节点列表
|
||||
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
||||
m.Tables(func(value ice.Maps) {
|
||||
switch value[mdb.TYPE] {
|
||||
case MASTER:
|
||||
m.PushAnchor(value[mdb.NAME], m.CmdAppend(SPIDE, value[mdb.NAME], CLIENT_URL))
|
||||
case SERVER, WORKER:
|
||||
m.PushButton(cli.OPEN, "vimer", "xterm")
|
||||
default:
|
||||
m.PushAnchor(value[mdb.NAME], MergePod(m, value[mdb.NAME]))
|
||||
m.PushButton("")
|
||||
}
|
||||
})
|
||||
m.Sort("type,name,text")
|
||||
|
@ -133,7 +133,9 @@ func init() {
|
||||
if list[value[nfs.PATH]] {
|
||||
return
|
||||
}
|
||||
list[value[nfs.PATH]] = true
|
||||
if list[value[nfs.PATH]] = true; strings.Contains(value[nfs.PATH], "/go/pkg/mod/") {
|
||||
value[nfs.PATH] = "/require/" + strings.Split(value[nfs.PATH], "/go/pkg/mod/")[1]
|
||||
}
|
||||
_binpack_file(m, w, value[nfs.PATH])
|
||||
})
|
||||
})
|
||||
|
@ -60,12 +60,12 @@ func init() {
|
||||
}, Hand: func(m *ice.Message, arg ...string) {
|
||||
// 下载依赖
|
||||
_autogen_version(m.Spawn())
|
||||
m.Cmd(cli.SYSTEM, GO, "get", "shylinux.com/x/ice")
|
||||
|
||||
// 执行编译
|
||||
web.PushStream(m)
|
||||
main, file, goos, arch := _compile_target(m, arg...)
|
||||
m.Optionv(cli.CMD_ENV, kit.Simple(m.Configv(cli.ENV), cli.HOME, kit.Env(cli.HOME), cli.PATH, kit.Env(cli.PATH), cli.GOOS, goos, cli.GOARCH, arch))
|
||||
m.Cmd(cli.SYSTEM, GO, "get", "shylinux.com/x/ice")
|
||||
if msg := m.Cmd(cli.SYSTEM, GO, cli.BUILD, "-o", file, main, ice.SRC_VERSION_GO, ice.SRC_BINPACK_GO); !cli.IsSuccess(msg) {
|
||||
m.Copy(msg)
|
||||
return
|
||||
|
@ -60,12 +60,14 @@ func init() {
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
switch mdb.HashInputs(m, arg); arg[0] {
|
||||
case mdb.TYPE:
|
||||
m.Push(arg[0], "ice.bin source stdio", "tmux attach -t miss", "node", "python", "bash", "sh")
|
||||
m.Push(arg[0], "ice.bin source stdio", "tmux attach -t miss", "docker run -w /root -it alpine", "python", "node", "bash", "sh")
|
||||
case mdb.NAME:
|
||||
m.Push(arg[0], path.Base(m.Option(mdb.TYPE)))
|
||||
m.Push(arg[0], ice.Info.HostName, path.Base(m.Option(mdb.TYPE)))
|
||||
}
|
||||
}},
|
||||
mdb.CREATE: {Name: "create type=sh name=xterm", Help: "创建"},
|
||||
mdb.CREATE: {Name: "create type=sh name", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashCreate(m.Spawn(), mdb.NAME, m.Option(mdb.TYPE), m.OptionSimple(mdb.TYPE, mdb.NAME))
|
||||
}},
|
||||
"resize": {Name: "resize", Help: "大小", Hand: func(m *ice.Message, arg ...string) {
|
||||
pty.Setsize(_xterm_get(m, m.Option(mdb.HASH)).File, &pty.Winsize{Rows: uint16(kit.Int(m.Option("rows"))), Cols: uint16(kit.Int(m.Option("cols")))})
|
||||
}},
|
||||
@ -78,8 +80,12 @@ func init() {
|
||||
_xterm_get(m, kit.Select(m.Option(mdb.HASH), arg, 0)).Write([]byte(m.Cmdx(PUBLISH, ice.CONTEXTS, INSTALL) + ice.NL))
|
||||
m.ProcessHold()
|
||||
}},
|
||||
web.WEBSITE: {Name: "website", Help: "打开", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.ProcessOpen(web.MergePodCmd(m, "", m.PrefixKey(), mdb.HASH, m.Option(mdb.HASH)))
|
||||
}},
|
||||
}, mdb.HashAction(mdb.FIELD, "time,hash,type,name,text")), Hand: func(m *ice.Message, arg ...string) {
|
||||
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
||||
m.PushAction(web.WEBSITE, mdb.REMOVE)
|
||||
m.Action(mdb.CREATE, mdb.PRUNES)
|
||||
} else {
|
||||
m.Action("full", INSTALL)
|
||||
|
Loading…
x
Reference in New Issue
Block a user