mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
add ice.OPS
This commit is contained in:
parent
2d23491876
commit
ce9151ae30
@ -18,7 +18,7 @@ func _cli_init(m *ice.Message) {
|
||||
})
|
||||
|
||||
// 环境变量
|
||||
for _, k := range []string{CTX_SHY, CTX_DEV, CTX_WEB, CTX_PID, CTX_USER, CTX_SHARE, CTX_RIVER} {
|
||||
for _, k := range []string{CTX_SHY, CTX_DEV, CTX_OPS, CTX_PID, CTX_USER, CTX_SHARE, CTX_RIVER} {
|
||||
m.Conf(RUNTIME, kit.Keys(CONF, k), os.Getenv(k))
|
||||
}
|
||||
|
||||
@ -85,7 +85,7 @@ const (
|
||||
const (
|
||||
CTX_SHY = "ctx_shy"
|
||||
CTX_DEV = "ctx_dev"
|
||||
CTX_WEB = "ctx_web"
|
||||
CTX_OPS = "ctx_ops"
|
||||
CTX_PID = "ctx_pid"
|
||||
CTX_LOG = "ctx_log"
|
||||
CTX_USER = "ctx_user"
|
||||
|
@ -36,7 +36,7 @@ func _cat_find(m *ice.Message, name string) io.ReadCloser {
|
||||
return kit.NewReadCloser(bytes.NewBuffer(b))
|
||||
}
|
||||
|
||||
msg := m.Cmd("web.spide", "dev", "raw", "GET", path.Join("/share/local/", name))
|
||||
msg := m.Cmd("web.spide", ice.DEV, "raw", "GET", path.Join("/share/local/", name))
|
||||
if msg.Result(0) == ice.ErrWarn {
|
||||
return kit.NewReadCloser(bytes.NewBufferString(""))
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ func _dream_show(m *ice.Message, name string) {
|
||||
if m.Richs(SPACE, nil, name, nil) == nil {
|
||||
m.Option(cli.CMD_DIR, p)
|
||||
m.Optionv(cli.CMD_ENV, kit.Simple(
|
||||
"ctx_dev", "http://:"+m.Cmd(SERVE).Append(tcp.PORT),
|
||||
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),
|
||||
"USER", ice.Info.UserName, m.Confv(DREAM, kit.Keym(cli.ENV)),
|
||||
))
|
||||
@ -83,7 +83,7 @@ func _dream_show(m *ice.Message, name string) {
|
||||
kit.Path(os.Args[0])
|
||||
|
||||
m.Optionv(cli.CMD_ERRPUT, path.Join(p, m.Conf(DREAM, kit.Keym(cli.ENV, "ctx_log"))))
|
||||
m.Cmd(cli.DAEMON, m.Confv(DREAM, kit.Keym(cli.CMD)), SPIDE_DEV, SPIDE_DEV, kit.MDB_NAME, name, RIVER, m.Option(RIVER))
|
||||
m.Cmd(cli.DAEMON, m.Confv(DREAM, kit.Keym(cli.CMD)), ice.DEV, ice.DEV, kit.MDB_NAME, name, RIVER, m.Option(RIVER))
|
||||
m.Event(DREAM_CREATE, kit.MDB_TYPE, m.Option(kit.MDB_TYPE), kit.MDB_NAME, name)
|
||||
m.Sleep(ice.MOD_TICK)
|
||||
}
|
||||
@ -115,7 +115,7 @@ func init() {
|
||||
m.ProcessInner()
|
||||
}},
|
||||
cli.START: {Name: "start name repos river", Help: "启动", Hand: func(m *ice.Message, arg ...string) {
|
||||
if m.Option(kit.MDB_NAME) == SPIDE_WEB {
|
||||
if m.Option(kit.MDB_NAME) == ice.OPS {
|
||||
m.Option(kit.MDB_NAME, "")
|
||||
}
|
||||
_dream_show(m, m.Option(kit.MDB_NAME, kit.Select(path.Base(m.Option(kit.SSH_REPOS)), m.Option(kit.MDB_NAME))))
|
||||
|
@ -268,7 +268,7 @@ func init() {
|
||||
m.Conf(SERVE, kit.Keys(kit.MDB_META, aaa.WHITE, k), true)
|
||||
}
|
||||
}},
|
||||
cli.START: {Name: "start dev name=web proto=http host port=9020", Help: "启动", Hand: func(m *ice.Message, arg ...string) {
|
||||
cli.START: {Name: "start dev name=ops proto=http host port=9020", Help: "启动", Hand: func(m *ice.Message, arg ...string) {
|
||||
if cli.NodeInfo(m, SERVER, ice.Info.HostName); m.Option(tcp.PORT) == tcp.RANDOM {
|
||||
m.Option(tcp.PORT, m.Cmdx(tcp.PORT, aaa.RIGHT))
|
||||
}
|
||||
@ -277,8 +277,8 @@ func init() {
|
||||
m.Sleep(ice.MOD_TICK)
|
||||
|
||||
m.Option(kit.MDB_NAME, "")
|
||||
for _, k := range kit.Split(m.Option(SPIDE_DEV)) {
|
||||
m.Cmd(SPACE, tcp.DIAL, SPIDE_DEV, k, kit.MDB_NAME, ice.Info.NodeName)
|
||||
for _, k := range kit.Split(m.Option(ice.DEV)) {
|
||||
m.Cmd(SPACE, tcp.DIAL, ice.DEV, k, kit.MDB_NAME, ice.Info.NodeName)
|
||||
}
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
|
@ -57,7 +57,7 @@ func _share_local(m *ice.Message, arg ...string) {
|
||||
}
|
||||
|
||||
// 上传文件
|
||||
m.Cmdy(SPACE, m.Option(cli.POD), SPIDE, SPIDE_DEV, SPIDE_RAW, kit.MergeURL2(m.Option(ice.MSG_USERWEB), "/share/proxy/"),
|
||||
m.Cmdy(SPACE, m.Option(cli.POD), SPIDE, ice.DEV, SPIDE_RAW, kit.MergeURL2(m.Option(ice.MSG_USERWEB), "/share/proxy/"),
|
||||
SPIDE_PART, m.OptionSimple(cli.POD), kit.MDB_PATH, p, CACHE, cache.Format(ice.MOD_TIME), UPLOAD, "@"+p)
|
||||
|
||||
if s, e := os.Stat(pp); e == nil && !s.IsDir() {
|
||||
|
@ -22,10 +22,10 @@ func _space_link(m *ice.Message, pod string, arg ...interface{}) string {
|
||||
func _space_domain(m *ice.Message) string {
|
||||
link := m.Conf(SHARE, kit.Keym(kit.MDB_DOMAIN))
|
||||
if link == "" {
|
||||
link = m.Cmd(SPACE, SPIDE_DEV, cli.PWD).Append(kit.MDB_LINK)
|
||||
link = m.Cmd(SPACE, ice.DEV, cli.PWD).Append(kit.MDB_LINK)
|
||||
}
|
||||
if link == "" {
|
||||
link = m.Cmd(SPACE, SPIDE_SHY, cli.PWD).Append(kit.MDB_LINK)
|
||||
link = m.Cmd(SPACE, ice.SHY, cli.PWD).Append(kit.MDB_LINK)
|
||||
}
|
||||
if link == "" {
|
||||
link = kit.Format("http://localhost:%s", m.Cmd(SERVE).Append(tcp.PORT))
|
||||
@ -46,7 +46,7 @@ func _space_list(m *ice.Message, space string) {
|
||||
func _space_dial(m *ice.Message, dev, name string, arg ...string) {
|
||||
m.Richs(SPIDE, nil, dev, func(key string, value map[string]interface{}) {
|
||||
client := kit.Value(value, tcp.CLIENT).(map[string]interface{})
|
||||
redial := m.Confm(SPACE, "meta.redial")
|
||||
redial := m.Confm(SPACE, kit.Keym("redial"))
|
||||
frame := m.Target().Server().(*Frame)
|
||||
|
||||
host := kit.Format(client[tcp.HOSTNAME])
|
||||
@ -251,7 +251,7 @@ func init() {
|
||||
}, Commands: map[string]*ice.Command{
|
||||
SPACE: {Name: "space name cmd auto", Help: "空间站", Action: map[string]*ice.Action{
|
||||
tcp.DIAL: {Name: "dial dev name river", Help: "连接", Hand: func(m *ice.Message, arg ...string) {
|
||||
_space_dial(m, m.Option(SPIDE_DEV), kit.Select(ice.Info.NodeName, m.Option(kit.MDB_NAME)))
|
||||
_space_dial(m, m.Option(ice.DEV), kit.Select(ice.Info.NodeName, m.Option(kit.MDB_NAME)))
|
||||
}},
|
||||
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
|
||||
_space_search(m, arg[0], arg[1], kit.Select("", arg, 2))
|
||||
|
@ -287,10 +287,6 @@ func _spide_save(m *ice.Message, cache, save, uri string, res *http.Response) {
|
||||
}
|
||||
|
||||
const (
|
||||
SPIDE_SHY = "shy"
|
||||
SPIDE_DEV = "dev"
|
||||
SPIDE_WEB = "web"
|
||||
|
||||
SPIDE_RAW = "raw"
|
||||
SPIDE_MSG = "msg"
|
||||
SPIDE_SAVE = "save"
|
||||
@ -361,7 +357,7 @@ func init() {
|
||||
m.Cmdy(mdb.DELETE, SPIDE, "", mdb.HASH, CLIENT_NAME, m.Option(CLIENT_NAME))
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, SPIDE_DEV, SPIDE_RAW, SPIDE_GET, arg[0], arg[1:]))))
|
||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, ice.DEV, SPIDE_RAW, SPIDE_GET, arg[0], arg[1:]))))
|
||||
}},
|
||||
SPIDE_POST: {Name: "POST url key value run:button", Help: "蜘蛛侠", Action: map[string]*ice.Action{
|
||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||
@ -370,10 +366,10 @@ func init() {
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
if len(arg) == 2 {
|
||||
m.Option(SPIDE_HEADER, ContentType, ContentJSON)
|
||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, SPIDE_DEV, SPIDE_RAW, SPIDE_POST, arg[0], SPIDE_DATA, arg[1:]))))
|
||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, ice.DEV, SPIDE_RAW, SPIDE_POST, arg[0], SPIDE_DATA, arg[1:]))))
|
||||
return
|
||||
}
|
||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, SPIDE_DEV, SPIDE_RAW, SPIDE_POST, arg[0], SPIDE_JSON, arg[1:]))))
|
||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(SPIDE, ice.DEV, SPIDE_RAW, SPIDE_POST, arg[0], SPIDE_JSON, arg[1:]))))
|
||||
}},
|
||||
}})
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ func (web *Frame) Start(m *ice.Message, arg ...string) bool {
|
||||
}
|
||||
|
||||
m.Option(kit.Keycb(tcp.LISTEN), func(l net.Listener) {
|
||||
m.Cmdy(mdb.INSERT, SERVE, "", mdb.HASH, arg, kit.MDB_STATUS, tcp.START, kit.MDB_PROTO, m.Option(kit.MDB_PROTO), SPIDE_DEV, m.Option(SPIDE_DEV))
|
||||
m.Cmdy(mdb.INSERT, SERVE, "", mdb.HASH, arg, kit.MDB_STATUS, tcp.START, kit.MDB_PROTO, m.Option(kit.MDB_PROTO), ice.DEV, m.Option(ice.DEV))
|
||||
defer m.Cmd(mdb.MODIFY, SERVE, "", mdb.HASH, kit.MDB_NAME, m.Option(kit.MDB_NAME), kit.MDB_STATUS, tcp.STOP)
|
||||
|
||||
// 启动服务
|
||||
@ -100,9 +100,9 @@ var Index = &ice.Context{Name: WEB, Help: "网络模块", Commands: map[string]*
|
||||
m.Conf(SPACE, kit.MDB_HASH, "")
|
||||
m.Cmd(mdb.SEARCH, mdb.CREATE, SPACE, m.Prefix(SPACE))
|
||||
|
||||
m.Cmd(SPIDE, mdb.CREATE, SPIDE_WEB, kit.Select("http://:9020", m.Conf(cli.RUNTIME, "conf.ctx_web")))
|
||||
m.Cmd(SPIDE, mdb.CREATE, SPIDE_DEV, kit.Select("http://:9020", m.Conf(cli.RUNTIME, "conf.ctx_dev")))
|
||||
m.Cmd(SPIDE, mdb.CREATE, SPIDE_SHY, kit.Select("https://shylinux.com:443", m.Conf(cli.RUNTIME, "conf.ctx_shy")))
|
||||
m.Cmd(SPIDE, mdb.CREATE, ice.OPS, kit.Select("http://:9020", m.Conf(cli.RUNTIME, "conf.ctx_ops")))
|
||||
m.Cmd(SPIDE, mdb.CREATE, ice.DEV, kit.Select("http://:9020", m.Conf(cli.RUNTIME, "conf.ctx_dev")))
|
||||
m.Cmd(SPIDE, mdb.CREATE, ice.SHY, kit.Select("https://shylinux.com:443", m.Conf(cli.RUNTIME, "conf.ctx_shy")))
|
||||
}},
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Save()
|
||||
|
2
conf.go
2
conf.go
@ -20,7 +20,7 @@ const (
|
||||
|
||||
SHY = "shy"
|
||||
DEV = "dev"
|
||||
WEB = "web"
|
||||
OPS = "ops"
|
||||
ICE = "ice"
|
||||
RUN = "run"
|
||||
|
||||
|
@ -21,7 +21,7 @@ func init() {
|
||||
|
||||
cli.RUN: {Name: "run", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(web.SPIDE_HEADER, web.ContentType, web.ContentJSON)
|
||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(web.SPIDE, web.SPIDE_DEV, web.SPIDE_RAW,
|
||||
m.Echo(kit.Formats(kit.UnMarshal(m.Cmdx(web.SPIDE, ice.DEV, web.SPIDE_RAW,
|
||||
m.Option(cli.CMD), m.Option(cli.API), web.SPIDE_DATA, m.Option(cli.ARG)))))
|
||||
m.Info(`curl "` + m.Option(cli.API) + `" -H "Content-Type: application/json"` + ` -d '` + m.Option(cli.ARG) + `'`)
|
||||
m.ProcessDisplay("/plugin/local/wiki/json.js")
|
||||
|
@ -45,7 +45,7 @@ func _install_download(m *ice.Message) {
|
||||
})
|
||||
|
||||
// 下载
|
||||
msg := m.Cmd(web.SPIDE, web.SPIDE_DEV, web.SPIDE_CACHE, web.SPIDE_GET, link)
|
||||
msg := m.Cmd(web.SPIDE, ice.DEV, web.SPIDE_CACHE, web.SPIDE_GET, link)
|
||||
m.Cmd(nfs.LINK, file, msg.Append(kit.MDB_FILE))
|
||||
|
||||
// 解压
|
||||
|
@ -65,7 +65,7 @@ func init() {
|
||||
}},
|
||||
|
||||
cli.RUN: {Name: "run", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
|
||||
msg := m.Cmd(web.SPIDE, web.SPIDE_DEV, web.SPIDE_CACHE, web.SPIDE_GET, m.Option(SERVICE), SECONDS, m.Option(SECONDS))
|
||||
msg := m.Cmd(web.SPIDE, ice.DEV, web.SPIDE_CACHE, web.SPIDE_GET, m.Option(SERVICE), SECONDS, m.Option(SECONDS))
|
||||
|
||||
cmd := kit.Simple(m.Confv(PPROF, kit.Keym(PPROF)), "-text", m.Option(BINNARY), msg.Append(kit.MDB_FILE))
|
||||
res := strings.Split(m.Cmdx(cli.SYSTEM, cmd), ice.NL)
|
||||
|
@ -35,7 +35,7 @@ func init() {
|
||||
}
|
||||
|
||||
// 下载文件
|
||||
msg := m.Cmd(web.SPIDE, web.SPIDE_DEV, web.SPIDE_CACHE, web.SPIDE_GET, "/publish/"+kit.Format(value[kit.MDB_FILE]))
|
||||
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)
|
||||
})
|
||||
|
@ -32,7 +32,7 @@ func init() {
|
||||
m.Option(kit.Keycb(web.DOWNLOAD), func(size, total int) {
|
||||
value[kit.MDB_TOTAL], value[kit.MDB_SIZE], value[kit.MDB_STEP] = total, size, kit.Format(size*100/total)
|
||||
})
|
||||
msg := m.Cmd("web.spide", web.SPIDE_DEV, web.SPIDE_CACHE, web.SPIDE_GET, m.Option(kit.MDB_LINK))
|
||||
msg := m.Cmd("web.spide", ice.DEV, web.SPIDE_CACHE, web.SPIDE_GET, m.Option(kit.MDB_LINK))
|
||||
|
||||
p := path.Join(m.Conf(CACHE, kit.META_PATH), m.Option(kit.MDB_NAME))
|
||||
m.Cmdy(nfs.LINK, p, msg.Append(kit.MDB_FILE))
|
||||
|
@ -61,7 +61,7 @@ func init() {
|
||||
m.Cmdy(cli.SYSTEM, TMUX, "split-window", "-t", kit.Keys(name, "2"), "-h")
|
||||
|
||||
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "3"), "ish_miss_log", "Enter")
|
||||
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "2"), "ish_miss_space dev web")
|
||||
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "2"), "ish_miss_space dev ops")
|
||||
m.Cmd(cli.SYSTEM, TMUX, "send-keys", "-t", kit.Keys(name, "1"), "vi etc/miss.sh", "Enter")
|
||||
|
||||
m.Cmdy(cli.SYSTEM, TMUX, "link-window", "-s", name, "-t", "miss:")
|
||||
|
@ -1,10 +1,10 @@
|
||||
package idc
|
||||
|
||||
import (
|
||||
"shylinux.com/x/icebergs"
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/web"
|
||||
"shylinux.com/x/icebergs/core/code"
|
||||
"shylinux.com/x/toolkits"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
)
|
||||
|
||||
var Index = &ice.Context{Name: "idc", Help: "idc",
|
||||
@ -27,7 +27,7 @@ var Index = &ice.Context{Name: "idc", Help: "idc",
|
||||
}
|
||||
|
||||
m.Optionv("header", "Content-Type", "application/json")
|
||||
m.Cmdy(ice.WEB_SPIDE, "dev", "msg", "POST", "/code/idc/show", "data", kit.Format(kit.Dict("cmds", append([]string{}, arg...))))
|
||||
m.Cmdy(ice.WEB_SPIDE, ice.DEV, "msg", "POST", "/code/idc/show", "data", kit.Format(kit.Dict("cmds", append([]string{}, arg...))))
|
||||
}},
|
||||
|
||||
"/show": {Name: "/show key type name text", Help: "show", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
|
8
type.go
8
type.go
@ -294,7 +294,7 @@ func (m *Message) Spawn(arg ...interface{}) *Message {
|
||||
return msg
|
||||
}
|
||||
func (m *Message) Start(key string, arg ...string) *Message {
|
||||
m.Search(key+".", func(p *Context, s *Context) {
|
||||
m.Search(key+PT, func(p *Context, s *Context) {
|
||||
s.Start(m.Spawn(s), arg...)
|
||||
})
|
||||
return m
|
||||
@ -360,14 +360,14 @@ func (m *Message) Search(key string, cb interface{}) *Message {
|
||||
p = ctx
|
||||
} else if key == "ice." {
|
||||
p, key = m.target.root, ""
|
||||
} else if key == "." {
|
||||
} else if key == PT {
|
||||
p, key = m.target, ""
|
||||
} else if key == ".." {
|
||||
if m.target.context != nil {
|
||||
p, key = m.target.context, ""
|
||||
}
|
||||
} else if strings.Contains(key, ".") {
|
||||
list := strings.Split(key, ".")
|
||||
} else if strings.Contains(key, PT) {
|
||||
list := strings.Split(key, PT)
|
||||
for _, p = range []*Context{m.target.root, m.target, m.source} {
|
||||
if p == nil {
|
||||
continue
|
||||
|
Loading…
x
Reference in New Issue
Block a user