forked from x/icebergs
opt code
This commit is contained in:
parent
cb16cee60e
commit
d48225bfe6
@ -13,7 +13,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func BinPath(arg ...string) string {
|
func BinPath(arg ...string) string {
|
||||||
return kit.Join(kit.Simple(arg, kit.Path(ice.BIN), kit.Path(ice.USR_LOCAL_BIN), kit.Path(ice.USR_LOCAL_GO_BIN), kit.Env(PATH)), ice.DF)
|
return kit.Join(kit.Simple(arg, kit.Path(ice.BIN), kit.Path(ice.USR_PUBLISH), kit.Path(ice.USR_LOCAL_BIN), kit.Path(ice.USR_LOCAL_GO_BIN), kit.Env(PATH)), ice.DF)
|
||||||
}
|
}
|
||||||
|
|
||||||
const FOREVER = "forever"
|
const FOREVER = "forever"
|
||||||
|
@ -149,7 +149,7 @@ const RUNTIME = "runtime"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
RUNTIME: {Name: "runtime info=bootinfo,ifconfig,hostinfo,hostname,userinfo,procinfo,diskinfo,api,cli,cmd,env,chain auto upgrade", Help: "运行环境", Actions: ice.MergeActions(ice.Actions{
|
RUNTIME: {Name: "runtime info=bootinfo,ifconfig,hostinfo,hostname,userinfo,procinfo,diskinfo,api,cli,cmd,env,path,chain auto upgrade", Help: "运行环境", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m) }},
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { _runtime_init(m) }},
|
||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, arg ...string) { m.Conf("", "", nil) }},
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, arg ...string) { m.Conf("", "", nil) }},
|
||||||
IFCONFIG: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy("tcp.host") }},
|
IFCONFIG: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy("tcp.host") }},
|
||||||
@ -200,6 +200,11 @@ func init() {
|
|||||||
m.Echo(kit.MergePOD(os.Getenv(CTX_DEV), os.Getenv(CTX_POD)))
|
m.Echo(kit.MergePOD(os.Getenv(CTX_DEV), os.Getenv(CTX_POD)))
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
nfs.PATH: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
for _, p := range strings.Split(os.Getenv(PATH), ice.DF) {
|
||||||
|
m.Push(nfs.PATH, p)
|
||||||
|
}
|
||||||
|
}},
|
||||||
"chain": {Hand: func(m *ice.Message, arg ...string) { m.Echo(m.FormatChain()) }},
|
"chain": {Hand: func(m *ice.Message, arg ...string) { m.Echo(m.FormatChain()) }},
|
||||||
"upgrade": {Hand: func(m *ice.Message, arg ...string) {
|
"upgrade": {Hand: func(m *ice.Message, arg ...string) {
|
||||||
file := kit.Keys("ice", runtime.GOOS, runtime.GOARCH)
|
file := kit.Keys("ice", runtime.GOOS, runtime.GOARCH)
|
||||||
|
45
conf.go
45
conf.go
@ -35,7 +35,6 @@ const (
|
|||||||
CAN = "can"
|
CAN = "can"
|
||||||
|
|
||||||
POD = "pod"
|
POD = "pod"
|
||||||
CTX = "ctx"
|
|
||||||
CMD = "cmd"
|
CMD = "cmd"
|
||||||
ARG = "arg"
|
ARG = "arg"
|
||||||
|
|
||||||
@ -289,17 +288,6 @@ const ( // ctx
|
|||||||
STYLE = "style"
|
STYLE = "style"
|
||||||
INDEX = "index"
|
INDEX = "index"
|
||||||
)
|
)
|
||||||
const ( // web
|
|
||||||
SERVE = "serve"
|
|
||||||
SPACE = "space"
|
|
||||||
|
|
||||||
THEME = "theme"
|
|
||||||
TITLE = "title"
|
|
||||||
)
|
|
||||||
const ( // nfs
|
|
||||||
SOURCE = "source"
|
|
||||||
SCRIPT = "script"
|
|
||||||
)
|
|
||||||
const ( // mdb
|
const ( // mdb
|
||||||
SEARCH = "search"
|
SEARCH = "search"
|
||||||
SELECT = "select"
|
SELECT = "select"
|
||||||
@ -316,9 +304,32 @@ const ( // mdb
|
|||||||
TEXT = "text"
|
TEXT = "text"
|
||||||
LINK = "link"
|
LINK = "link"
|
||||||
)
|
)
|
||||||
const ( // ice
|
const ( // web
|
||||||
MDB = "mdb"
|
SERVE = "serve"
|
||||||
GDB = "gdb"
|
SPACE = "space"
|
||||||
AAA = "aaa"
|
|
||||||
CLI = "cli"
|
THEME = "theme"
|
||||||
|
TITLE = "title"
|
||||||
|
)
|
||||||
|
const ( // nfs
|
||||||
|
SOURCE = "source"
|
||||||
|
SCRIPT = "script"
|
||||||
|
)
|
||||||
|
const ( // cli
|
||||||
|
SYSTEM = "system"
|
||||||
|
START = "start"
|
||||||
|
)
|
||||||
|
const ( // ice
|
||||||
|
CTX = "ctx"
|
||||||
|
MDB = "mdb"
|
||||||
|
WEB = "web"
|
||||||
|
AAA = "aaa"
|
||||||
|
LEX = "lex"
|
||||||
|
YAC = "yac"
|
||||||
|
SSH = "ssh"
|
||||||
|
GDB = "gdb"
|
||||||
|
TCP = "tcp"
|
||||||
|
NFS = "nfs"
|
||||||
|
CLI = "cli"
|
||||||
|
LOG = "log"
|
||||||
)
|
)
|
||||||
|
@ -123,8 +123,13 @@ func init() {
|
|||||||
}, PlugAction())},
|
}, PlugAction())},
|
||||||
GO: {Name: "go path auto", Help: "后端编程", Actions: ice.MergeActions(ice.Actions{
|
GO: {Name: "go path auto", Help: "后端编程", Actions: ice.MergeActions(ice.Actions{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { m.Cmd(NAVIGATE, mdb.CREATE, GODOC, m.PrefixKey()) }},
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { m.Cmd(NAVIGATE, mdb.CREATE, GODOC, m.PrefixKey()) }},
|
||||||
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) { _go_show(m, arg...) }},
|
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _go_exec(m, arg...) }},
|
cmds, text := "ice.bin space dial dev ops", ctx.GetFileCmd(path.Join(arg[2], arg[1]))
|
||||||
|
_xterm_show(m, cmds, text)
|
||||||
|
}},
|
||||||
|
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
_go_exec(m, arg...)
|
||||||
|
}},
|
||||||
COMPLETE: {Hand: func(m *ice.Message, arg ...string) {
|
COMPLETE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
kit.If(len(arg) == 0 || arg[0] != mdb.FOREACH, func() { _go_complete(m, arg...) })
|
kit.If(len(arg) == 0 || arg[0] != mdb.FOREACH, func() { _go_complete(m, arg...) })
|
||||||
}},
|
}},
|
||||||
|
@ -99,8 +99,13 @@ const JSON = "json"
|
|||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
JS: {Name: "js path auto", Help: "前端", Actions: ice.MergeActions(ice.Actions{
|
JS: {Name: "js path auto", Help: "前端", Actions: ice.MergeActions(ice.Actions{
|
||||||
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) { _js_exec(m, arg...) }},
|
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _js_exec(m, arg...) }},
|
cmds, text := "node", kit.Format(`require("./usr/volcanos/proto.js"), require("./usr/volcanos/publish/client/nodejs/proto.js"), Volcanos.meta._main("%s")`, path.Join(ice.PS, arg[2], arg[1]))
|
||||||
|
_xterm_show(m, cmds, text)
|
||||||
|
}},
|
||||||
|
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
_js_exec(m, arg...)
|
||||||
|
}},
|
||||||
|
|
||||||
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) { m.Echo(_js_template) }},
|
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) { m.Echo(_js_template) }},
|
||||||
COMPLETE: {Hand: func(m *ice.Message, arg ...string) {
|
COMPLETE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -29,6 +29,10 @@ func init() {
|
|||||||
cli.IsAlpine(m, "python2")
|
cli.IsAlpine(m, "python2")
|
||||||
cli.IsAlpine(m, "python3")
|
cli.IsAlpine(m, "python3")
|
||||||
}},
|
}},
|
||||||
|
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
cmds, text := "python -i "+path.Join(arg[2], arg[1]), ""
|
||||||
|
_xterm_show(m, cmds, text)
|
||||||
|
}},
|
||||||
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _py_exec(m, arg...) }},
|
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _py_exec(m, arg...) }},
|
||||||
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) { m.Echo(`print "hello world"`) }},
|
TEMPLATE: {Hand: func(m *ice.Message, arg ...string) { m.Echo(`print "hello world"`) }},
|
||||||
}, PlugAction())},
|
}, PlugAction())},
|
||||||
|
@ -2,26 +2,17 @@ package code
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"path"
|
"path"
|
||||||
|
"strings"
|
||||||
|
|
||||||
ice "shylinux.com/x/icebergs"
|
ice "shylinux.com/x/icebergs"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/ctx"
|
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
func _sh_exec(m *ice.Message, arg ...string) (res []string) {
|
func _sh_exec(m *ice.Message, arg ...string) {
|
||||||
if cmd := ctx.GetFileCmd(path.Join(arg[2], arg[1])); cmd != "" {
|
m.Cmdy(cli.SYSTEM, SH, "-c", kit.Format(_sh_template, m.Option(ice.MSG_USERHOST), m.Option(ice.MSG_USERPOD), path.Join(arg[2], arg[1]))).StatusTime()
|
||||||
res = append(res, kit.Format(_sh_template, "http://localhost:9020", m.Option(ice.MSG_USERPOD), cmd))
|
|
||||||
}
|
|
||||||
if _, e := nfs.DiskFile.StatFile(path.Join(arg[2], arg[1])); e == nil {
|
|
||||||
res = append(res, kit.Format("source %s", kit.Path(arg[2], arg[1])))
|
|
||||||
} else if b, e := nfs.ReadFile(m, path.Join(arg[2], arg[1])); e == nil {
|
|
||||||
res = append(res, string(b))
|
|
||||||
}
|
|
||||||
m.Cmdy(cli.SYSTEM, SH, "-c", kit.Join(res, ice.NL)).StatusTime()
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const SH = nfs.SH
|
const SH = nfs.SH
|
||||||
@ -29,25 +20,22 @@ const SH = nfs.SH
|
|||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
SH: {Name: "sh path auto", Help: "命令", Actions: ice.MergeActions(ice.Actions{
|
SH: {Name: "sh path auto", Help: "命令", Actions: ice.MergeActions(ice.Actions{
|
||||||
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) { _c_show(m, arg...) }},
|
mdb.RENDER: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) { _sh_exec(m, arg...) }},
|
cmds, text := SH, kit.Format(_sh_template, m.Option(ice.MSG_USERHOST), m.Option(ice.MSG_USERPOD), path.Join(arg[2], arg[1]))
|
||||||
|
if strings.HasPrefix(text, "#!") {
|
||||||
|
cmds = strings.TrimSpace(strings.SplitN(text, ice.NL, 2)[0][2:])
|
||||||
|
}
|
||||||
|
_xterm_show(m, cmds, text)
|
||||||
|
}},
|
||||||
|
mdb.ENGINE: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
_sh_exec(m, arg...)
|
||||||
|
}},
|
||||||
NAVIGATE: {Hand: func(m *ice.Message, arg ...string) { _c_tags(m, MAN, "ctags", "-a", "-R", nfs.PWD) }},
|
NAVIGATE: {Hand: func(m *ice.Message, arg ...string) { _c_tags(m, MAN, "ctags", "-a", "-R", nfs.PWD) }},
|
||||||
}, PlugAction())},
|
}, PlugAction())},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
var _sh_template = `#!/bin/sh
|
var _sh_template = `#!/bin/sh
|
||||||
export ctx_dev=%s; ctx_pod=%s ctx_temp=$(mktemp); curl -fsSL $ctx_dev -o $ctx_temp; source $ctx_temp &>/dev/null
|
export ctx_dev=%s ctx_pod=%s ctx_mod=%s
|
||||||
_done=""
|
temp=$(mktemp); if curl -h &>/dev/null; then curl -o $temp -fsSL $ctx_dev; else wget -O $temp -q $ctx_dev; fi && source $temp $ctx_mod
|
||||||
_list() {
|
|
||||||
if [ "$_done" = "" ]; then
|
|
||||||
ish_sys_dev_run %s "$@"
|
|
||||||
else
|
|
||||||
ish_sys_dev_run_command "$@"
|
|
||||||
fi
|
|
||||||
_done=done
|
|
||||||
}
|
|
||||||
_action() {
|
|
||||||
_list action "$@"
|
|
||||||
}
|
|
||||||
`
|
`
|
||||||
|
@ -118,3 +118,7 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _xterm_show(m *ice.Message, cmds, text string) {
|
||||||
|
m.Cmdy(ctx.COMMAND, XTERM).Push(ctx.ARGS, kit.Format([]string{m.Cmdx(XTERM, mdb.CREATE, mdb.TYPE, cmds, mdb.TEXT, text)})).ProcessField(XTERM)
|
||||||
|
}
|
||||||
|
15
init.go
15
init.go
@ -92,6 +92,11 @@ func Run(arg ...string) string {
|
|||||||
if len(arg) == 0 && len(os.Args) > 1 {
|
if len(arg) == 0 && len(os.Args) > 1 {
|
||||||
arg = kit.Simple(os.Args[1:], kit.Split(kit.Env(CTX_ARG)))
|
arg = kit.Simple(os.Args[1:], kit.Split(kit.Env(CTX_ARG)))
|
||||||
}
|
}
|
||||||
|
if len(arg) == 0 && runtime.GOOS == "windows" {
|
||||||
|
arg = append(arg, SERVE, START, DEV, SHY)
|
||||||
|
logs.Disable(true)
|
||||||
|
os.Stderr.Close()
|
||||||
|
}
|
||||||
Pulse.meta[MSG_DETAIL] = arg
|
Pulse.meta[MSG_DETAIL] = arg
|
||||||
kit.Fetch(kit.Sort(os.Environ()), func(env string) {
|
kit.Fetch(kit.Sort(os.Environ()), func(env string) {
|
||||||
if ls := strings.SplitN(env, EQ, 2); strings.ToLower(ls[0]) == ls[0] && ls[0] != "_" {
|
if ls := strings.SplitN(env, EQ, 2); strings.ToLower(ls[0]) == ls[0] && ls[0] != "_" {
|
||||||
@ -101,11 +106,6 @@ func Run(arg ...string) string {
|
|||||||
if Pulse._cmd == nil {
|
if Pulse._cmd == nil {
|
||||||
Pulse._cmd = &Command{RawHand: logs.FileLines(3)}
|
Pulse._cmd = &Command{RawHand: logs.FileLines(3)}
|
||||||
}
|
}
|
||||||
if len(arg) == 0 && runtime.GOOS == "windows" {
|
|
||||||
arg = append(arg, SERVE, "start", "dev", "shy")
|
|
||||||
logs.Disable(true)
|
|
||||||
os.Stderr.Close()
|
|
||||||
}
|
|
||||||
switch Index.Merge(Index).Begin(Pulse, arg...); kit.Select("", arg, 0) {
|
switch Index.Merge(Index).Begin(Pulse, arg...); kit.Select("", arg, 0) {
|
||||||
case SERVE, SPACE:
|
case SERVE, SPACE:
|
||||||
if Index.Start(Pulse, arg...) {
|
if Index.Start(Pulse, arg...) {
|
||||||
@ -116,7 +116,10 @@ func Run(arg ...string) string {
|
|||||||
if logs.Disable(true); len(arg) == 0 {
|
if logs.Disable(true); len(arg) == 0 {
|
||||||
arg = append(arg, HELP)
|
arg = append(arg, HELP)
|
||||||
}
|
}
|
||||||
if Pulse.Cmd(INIT).Cmdy(arg); strings.TrimSpace(Pulse.Result()) == "" {
|
if Pulse.Cmdy(INIT).Cmdy(arg); Pulse.IsErrNotFound() {
|
||||||
|
Pulse.SetAppend().SetResult().Cmdy(SYSTEM, arg)
|
||||||
|
}
|
||||||
|
if strings.TrimSpace(Pulse.Result()) == "" {
|
||||||
Pulse.Table()
|
Pulse.Table()
|
||||||
}
|
}
|
||||||
if !strings.HasSuffix(Pulse.Result(), NL) {
|
if !strings.HasSuffix(Pulse.Result(), NL) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user