mirror of
https://shylinux.com/x/icebergs
synced 2025-06-26 18:37:29 +08:00
opt some
This commit is contained in:
parent
a5a6aa53a8
commit
be9e03a440
@ -28,8 +28,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, v := range os.Environ() {
|
for _, v := range os.Environ() {
|
||||||
ls := kit.Split(v, "=", "=")
|
if ls := kit.Split(v, "=", "="); kit.IndexOf(env, ls[0]) == -1 && len(ls) > 1 {
|
||||||
if kit.IndexOf(env, ls[0]) == -1 {
|
|
||||||
env = append(env, ls[0], ls[1])
|
env = append(env, ls[0], ls[1])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,6 @@ const (
|
|||||||
|
|
||||||
var ENV_LIST = []string{
|
var ENV_LIST = []string{
|
||||||
TERM, SHELL, CTX_SHY, CTX_DEV, CTX_OPS, CTX_ARG, CTX_PID, CTX_USER, CTX_SHARE, CTX_RIVER, CTX_DAEMON,
|
TERM, SHELL, CTX_SHY, CTX_DEV, CTX_OPS, CTX_ARG, CTX_PID, CTX_USER, CTX_SHARE, CTX_RIVER, CTX_DAEMON,
|
||||||
"DOCKER_HOST",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -29,15 +29,18 @@ func _dir_hash(m *ice.Message, p string) string {
|
|||||||
return ""
|
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 {
|
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))
|
list, _ := ReadDir(m, path.Join(root, name))
|
||||||
if e != nil && len(list) == 0 { // 单个文件
|
|
||||||
ls, _ := ReadDir(m, path.Dir(path.Join(root, name)))
|
if len(list) == 0 { // 单个文件
|
||||||
for _, s := range ls {
|
if s, e := StatFile(m, path.Join(root, name)); e == nil && !s.IsDir() {
|
||||||
if s.Name() == path.Base(name) {
|
ls, _ := ReadDir(m, path.Dir(path.Join(root, name)))
|
||||||
list = append(list, s)
|
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 {
|
for _, f := range list {
|
||||||
|
@ -144,7 +144,8 @@ func init() {
|
|||||||
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", ""))
|
m.ProcessOpen(MergePod(m, m.Option(mdb.NAME)+"/cmd/web.code.vimer", "", ""))
|
||||||
}},
|
}},
|
||||||
"xterm": {Name: "xterm", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
|
"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) {
|
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)
|
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 {
|
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...)
|
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/cli"
|
||||||
"shylinux.com/x/icebergs/base/gdb"
|
"shylinux.com/x/icebergs/base/gdb"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
"shylinux.com/x/icebergs/base/tcp"
|
"shylinux.com/x/icebergs/base/tcp"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
"shylinux.com/x/websocket"
|
"shylinux.com/x/websocket"
|
||||||
@ -348,15 +349,25 @@ func init() {
|
|||||||
m.StatusTimeCount("nCPU", ncpu, "nmem", kit.Format("%.2fG", nmem/1000.0))
|
m.StatusTimeCount("nCPU", ncpu, "nmem", kit.Format("%.2fG", nmem/1000.0))
|
||||||
m.Debug("what %v", m.FormatMeta())
|
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) {
|
}, mdb.HashCloseAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if len(arg) < 2 { // 节点列表
|
if len(arg) < 2 { // 节点列表
|
||||||
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
||||||
m.Tables(func(value ice.Maps) {
|
m.Tables(func(value ice.Maps) {
|
||||||
switch value[mdb.TYPE] {
|
switch value[mdb.TYPE] {
|
||||||
case MASTER:
|
case SERVER, WORKER:
|
||||||
m.PushAnchor(value[mdb.NAME], m.CmdAppend(SPIDE, value[mdb.NAME], CLIENT_URL))
|
m.PushButton(cli.OPEN, "vimer", "xterm")
|
||||||
default:
|
default:
|
||||||
m.PushAnchor(value[mdb.NAME], MergePod(m, value[mdb.NAME]))
|
m.PushButton("")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
m.Sort("type,name,text")
|
m.Sort("type,name,text")
|
||||||
|
@ -133,7 +133,9 @@ func init() {
|
|||||||
if list[value[nfs.PATH]] {
|
if list[value[nfs.PATH]] {
|
||||||
return
|
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])
|
_binpack_file(m, w, value[nfs.PATH])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -60,12 +60,12 @@ func init() {
|
|||||||
}, Hand: func(m *ice.Message, arg ...string) {
|
}, Hand: func(m *ice.Message, arg ...string) {
|
||||||
// 下载依赖
|
// 下载依赖
|
||||||
_autogen_version(m.Spawn())
|
_autogen_version(m.Spawn())
|
||||||
m.Cmd(cli.SYSTEM, GO, "get", "shylinux.com/x/ice")
|
|
||||||
|
|
||||||
// 执行编译
|
// 执行编译
|
||||||
web.PushStream(m)
|
web.PushStream(m)
|
||||||
main, file, goos, arch := _compile_target(m, arg...)
|
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.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) {
|
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)
|
m.Copy(msg)
|
||||||
return
|
return
|
||||||
|
@ -60,12 +60,14 @@ func init() {
|
|||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
switch mdb.HashInputs(m, arg); arg[0] {
|
switch mdb.HashInputs(m, arg); arg[0] {
|
||||||
case mdb.TYPE:
|
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:
|
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) {
|
"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")))})
|
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))
|
_xterm_get(m, kit.Select(m.Option(mdb.HASH), arg, 0)).Write([]byte(m.Cmdx(PUBLISH, ice.CONTEXTS, INSTALL) + ice.NL))
|
||||||
m.ProcessHold()
|
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) {
|
}, mdb.HashAction(mdb.FIELD, "time,hash,type,name,text")), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
if mdb.HashSelect(m, arg...); len(arg) == 0 {
|
||||||
|
m.PushAction(web.WEBSITE, mdb.REMOVE)
|
||||||
m.Action(mdb.CREATE, mdb.PRUNES)
|
m.Action(mdb.CREATE, mdb.PRUNES)
|
||||||
} else {
|
} else {
|
||||||
m.Action("full", INSTALL)
|
m.Action("full", INSTALL)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user